我需要计算某些行的库存总和,不同公司存在相同的产品,所以我需要计算所有产品的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种产品。
答案 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'
PS:您需要使用ID
代替Name
。