我需要包含2栏的所有产品的列表,其中包含产品首次订购的日期和产品的订购数量。从最早的日期开始选择行
结构:
tbl_product
-
的productID - 产品名称
tbl_orderProduct
- orderProductID
- 单编号
-
的productID - 数量
tbl_order
- 或derID
- orderedDate
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选择订单,因为这有可能不是唯一的。
此外,我不能通过在我的'左加入'选择orderID它,因为我也必须将它添加到'分组依据'然后它会返回包含产品的每个订单的行。 所以我不得不从第一个订单检索orderID或orderProductID。
在此先感谢!
什么DBMS和版本? – 2012-07-27 15:13:03
你正在使用什么数据库? – RedFilter 2012-07-27 15:13:15
这是SQL Server 2008 .. sry – falias 2012-07-27 17:46:17