我试图获得所有订单中类型A的商品在订单上的所有订单,但类型B的商品不在订单上。不幸的是,表结构有一些缺陷,这使得这比我想象的要困难一些。SQL选择两个特定项目在同一日期不销售给同一客户的地方
数据库问题:
-没有“订单”表,只有一个“Order_Lines”表。但是,我可以假设具有相同“OrderDate”字段和相同客户(见下文)的任何Order_Lines都是同一订单的一部分。
- 为每个交易创建一个新的“客户”记录(yikes!),因此“CustID”字段没有用处。但是,我可以假设任何具有相同“名字”和“姓氏”的客户都是相同的。
DB布局:
Order_Lines:
OrderLineID CustID ProductID OrderDate
----------- ----- ----------- ----------
10 5 50 2011-08-01
20 6 60 2011-08-01
30 7 50 2011-08-02
40 8 55 2011-08-03
50 9 70 2011-08-03
Customer:
CustID FirstName LastName
----- --------- ---------
5 Bill Smith
6 Bill Smith
7 Roger Wilcock
8 Rudiger Fensterbottom
9 Sam Williams
ProductTypes:
ProductID ProductType
--------- -----------
50 Kite
55 Kite
60 Yo-Yo
70 Yo-Yo
我想获得的所有订单,其中风筝被命令,但溜溜球都是不一样的顺序。在这种情况下,我的结果集为:
ProductID OrderDate FirstName LastName
--------- --------- --------- --------
50 2011-08-02 Roger Wilcock
55 2011-08-03 Rudiger Fensterbottom
我怎么没看到'Order_Lines'与'Customer'表有关。你确定'Order_Lines'中没有'CustID'字段吗? – RedFilter
哦,我想'PatID' ='CustID'? – RedFilter
对不起,是的,PatID = CustID –