如何SUM行值并将结果保存在新的总列中?

时间:2012-10-26 00:06:15

标签: mysql sql database

我需要计算某些行的库存总和,不同公司存在相同的产品,所以我需要计算所有产品的SUM /总数,每个产品名称,这是我想要实现的结果:

ID | Name     | Company | Stock | Total Stock
1  | Product1 | Company1| 10    | 30
2  | Product1 | Company2| 10    | 30
3  | Product1 | Company2| 10    | 30
4  | Product2 | Company1| 10    | 15
5  | Product2 | Company2| 5     | 15
6  | Product3 | Company2| 5     | 5
7  | Product4 | Company1| 6     | 10
8  | Product4 | Company2| 4     | 10

...等 总库存是从产品中选择SUM(库存)的总和,其中名称=“产品1” 如何保存此结果?我应该使用触发器还是程序?我有SQL的基本知识

这需要每30分钟或每次更新一行时运行。

产品表有大约40.000种产品。

1 个答案:

答案 0 :(得分:2)

SELECT  a.*, b.totalStock
FROM    tableName a
        INNER JOIN
        (
            SELECT Name, SUM(Stock) totalStock
            FROM tableName
            GROUP BY Name
        ) b on a.name = b.name
-- WHERE a.Name = 'Product1'

SQLFiddle Demo

PS:您需要使用ID代替Name