连接3个表并按ProductId分组但添加数量值的SQL

连接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

我有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 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