【发布时间】:2012-07-27 15:09:44
【问题描述】:
我需要一个包含 2 列的所有产品列表,其中包含产品首次订购的日期和该产品的订购数量。
结构:
tbl_product
- 产品ID
- 产品名称
tbl_orderProduct
- orderProductID
- 订单ID
- 产品ID
- 数量
tbl_order
- 订单ID
- 订购日期
SELECT p.productName, firstOrder.orderedDate FROM tbl_product p
LEFT JOIN(
SELECT op.productID, MIN(o.orderedDate) AS orderedDate FROM tbl_orderProduct op
JOIN tbl_order o ON op.orderID = o.orderID
GROUP BY op.productID
)
firstOrder ON firstOrder.productID = p.productID
到目前为止,我第一次尝试检索日期有效,但我不知道如何获取数量,因为我必须获取订单,然后返回 tbl_orderProduct 获取数量。
我不想通过 firstOrder.ordererdDate 通过 select 获取订单,因为它可能不是唯一的。
此外,我无法通过“左连接”中的选择传递 orderID,因为我还必须将其添加到“分组依据”中,并且它会为包含该产品的每个订单返回一行。
所以我必须以某种方式从第一个订单中检索 orderID 或 orderProductID。
提前致谢!
【问题讨论】:
标签: sql sql-server sql-server-2008