【发布时间】:2011-08-29 15:57:53
【问题描述】:
我正在尝试获取 A 类型的商品在订单上但 B 类型的商品不在订单上的所有订单。不幸的是,表格结构存在一些缺陷,这使得这比我想象的要困难一些。
数据库问题:
- 没有“Orders”表,只有“Order_Lines”表。但是,我可以假设任何具有相同“OrderDate”字段和相同客户(见下文)的 Order_Lines 都是同一订单的一部分。
-为每笔交易创建一个新的“客户”记录(哎呀!),所以“客户 ID”字段是无用的。但是,我可以假设任何具有相同“FirstName”和“LastName”的客户都是相同的。
数据库布局:
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字段吗? -
哦,我猜
PatID=CustID?