0

我需要帮助构建一个返回三个不同表的结果的 SQL 查询。我已经成功地为两个表创建了语句,但无法获得所有三个表。

表格及相关字段如下:

Order        OrderItem       Product
-------      -----------     -----------
orderId      orderId         productCode
status       productCode     productName
             quantity

我正在寻找所需的结果集:

[productCode]    [productName]    [orderCount]
-------------    -----------      ----------
123              widget           3
456              thing            2

结果将按productCodefrom OrderItemproductNamefromProduct以及产品的订购和发货次数分组。

运输状态来自status上的字段Order。即仅包括字段为“已发货”的OrderItem行。statusOrder

任何帮助将不胜感激。

4

2 回答 2

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
于 2013-04-11T16:51:02.997 回答
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
于 2013-04-11T16:47:17.297 回答