考虑模拟表子查询或有条件的逻辑结果集
ORDERS
OrderID CustID date
10 1 2014-01-01
11 3 2014-02-01
12 2 2014-03-01
CUSTOMER
CustID FName LName
1 Jon Doe
2 Jane Doe
3 Mike Brown
LINEITEM
OrderID ProdID
10 1
10 3
11 2
12 1
12 2
PRODUCTS
ProdID Description
1 Apple
2 Orange
3 Grape
我想返回的结果集,看起来像这样:
OrderID CustomerLastName Apple Orange Grape
11 Brown No Yes No
12 Doe Yes Yes No
逻辑:选择单编号,客户姓名,确定如果他们为订单日期大于2014-01-01的所有订单购买了每种产品(是或否) 。
这是关于据我可以得到
select O.OrderID as 'OrderID',
C.LName as 'CustomerLastName',
(some conditional or subquery for figuring out yes or no) as 'Apple',
(some conditional or subquery for figuring out yes or no) as 'Orange',
(some conditional or subquery for figuring out yes or no) as 'Grape'
from ORDERS O join CUSTOMER C using (CustID)
join LINEITEM using (OrderID)
join Products P using (ProdID)
where O.date > 2014-01-01;
如何获得任何帮助每个订单只有一行返回,YES /对产品没有逻辑将不胜感激。
谢谢
对不起,这些表没有保留原始文本框的格式。试试这个 – SciGuyMcQ 2014-09-05 00:11:29
请不要将表格并排放置,它会使复制粘贴变成sqlfiddle困难。 – Barmar 2014-09-05 00:13:15