0

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

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

等等... 总库存是Select SUM(Stock) From Product Where Name="Product1" 我如何保存这个结果的总和?我应该使用触发器还是过程?我有基本的 SQL 知识

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

产品表有大约 40.000 个产品。

4

1 回答 1

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 演示

PS:你需要使用ID而不是Name.

于 2012-10-26T00:08:10.537 回答