我需要帮助构建一个返回三个不同表的结果的SQL查询。我已成功为两个表创建语句,但无法获得所有三个表。
表格和相关字段如下:
Order OrderItem Product
------- ----------- -----------
orderId orderId productCode
status productCode productName
quantity
我正在寻找所需的结果集:
[productCode] [productName] [orderCount]
------------- ----------- ----------
123 widget 3
456 thing 2
结果将按productCode
的{{1}},OrderItem
的{{1}}以及产品订购和发货的次数进行分组。
发货状态来自productName
上的Product
字段。即仅包含status
Order
字段OrderItem
已被“发货”的行。
非常感谢任何帮助。
答案 0 :(得分:1)
试试这个:
SELECT
c.productCode,
c.productName,
COUNT(*) orderCount
FROM Order a
INNER JOIN OrderItem b
ON a.orderId = b.orderId
INNER JOIN Product c
ON b.productCode = c.productCode
WHERE status = 'shipped'
GROUP BY
c.productCode,
c.productName
答案 1 :(得分:0)
试试这个:
select
p.productCode, p.productName, count(o.OrderId) as orderCount,
sum(oi.quantity) as orderQuantity -- Optional (if you want the sum of products ordered)
from
[product] as p
inner join [orderItem] as oi on p.productCode = oi.productcode
inner join [order] as o on oi.orderId = o.orderId
group by
p.productCode, p.productName