如何在SQL Server中合并同一供应商的成本行并汇总总成本
解决方案
你只需要在现有查询的基础上,对结果按Sub_Name再次分组并求和即可。具体来说,可以把你当前的查询作为基础,在外层按供应商名称分组计算总成本。
修改后的SQL语句如下:
SELECT s2.Sub_Name, SUM(s1.Quantity * po.Price) AS Cost FROM ( SELECT Supplier, Product_ID, SUM(Quantity) AS Quantity FROM sales GROUP BY Supplier, Product_ID ) s1 INNER JOIN ( SELECT Sup_ID, Sub_Name FROM supplier ) s2 ON s1.Supplier = s2.Sup_ID INNER JOIN ( SELECT Product_ID, ProductName, Price FROM product ) po ON po.Product_ID = s1.Product_ID GROUP BY s2.Sub_Name;
思路解释
- 你的原始子查询
s1已经算出了每个供应商对应每个产品的总销量,再通过内连接关联了供应商名称和产品单价,得到了每个供应商单款产品的成本。 - 现在在外层查询中,以
Sub_Name(供应商名称)为分组依据,对每个分组的成本值求和,就能直接得到每个供应商的总成本。
验证一下结果:
- Supplier1的总成本:88806 + 21710 + 79925 = 190441
- Supplier2的总成本:16925 + 52896 = 69821
完全匹配你想要的输出格式。
内容的提问来源于stack exchange,提问作者Shiva Sankar Tamilmani
相关产品推荐
相关产品推荐

