连接3个表并按ProductId分组但添加数量值的SQL
我有3个表上的数据,我需要加入到一个报告中,该报告对装运地点的产品总数进行分组 表格如下:连接3个表并按ProductId分组但添加数量值的SQL,sql,group-by,sql-order-by,inner-join,Sql,Group By,Sql Order By,Inner Join,我有3个表上的数据,我需要加入到一个报告中,该报告对装运地点的产品总数进行分组 表格如下: A.OrderItem包含ProductId和Quantity B.订单包含发货地点 C.包含ProductName 这就是我尝试过的 SELECT B.ShippingLocation, A.ProductId, C.ProductName, A.Quantity FROM OrderItem A INNER JOIN Order B ON A.OrderId = B.Id INNER JOIN P
A.
包含OrderItem
和ProductId
Quantity
B.
包含订单
发货地点
C.
包含
ProductName
SELECT B.ShippingLocation, A.ProductId, C.ProductName, A.Quantity
FROM OrderItem A
INNER JOIN Order B ON A.OrderId = B.Id
INNER JOIN Product C ON A.ProductId = C.Id
ORDER BY ShippingLocation
我的输出如下所示:
ShippingLocation ProductId Name Quantity
---------------------------------------------------
loc 1 1 name1 4
loc 1 1 name1 2
loc 2 1 name1 6
loc 2 1 name1 4
我希望是
ShippingLocation ProductId Name Quantity
---------------------------------------------------
loc 1 1 name1 6
loc 2 1 name1 10
谢谢您的帮助。您可以使用
sum
和分组方式对数量进行求和:
SELECT B.ShippingLocation
, A.ProductId
, C.ProductName
, SUM(A.Quantity) AS Quantity
FROM OrderItem A
JOIN Order B ON A.OrderId = B.Id
JOIN Product C ON A.ProductId = C.Id
GROUP BY B.ShippingLocation
, A.ProductId
, C.ProductName
ORDER BY B.ShippingLocation