非常直接。这句话有什么问题。
SELECT DISTINCT CUST_FNAME "FIRST NAME", CUST_LNAME "LAST NAME", POS_TIME "TIME", POS_DATE "DATE" FROM POS, CUSTOMER
WHERE CUST_NUM = POS_CUST_NUM AND POS_ITEMID = 1 AND POS_ITEMID = 2;
答案 0 :(得分:1)
我认为您可能希望与BOTH项目1和2相关联的客户。在这种情况下,您可以使用以下内容:
select x.*, pos_time, pos_date
from (SELECT CUST_NUM, CUST_FNAME, CUST_LNAME
FROM POS
join CUSTOMER
on CUST_NUM = POS_CUST_NUM
where POS_ITEMID = 1
intersect
SELECT CUST_NUM, CUST_FNAME, CUST_LNAME
FROM POS
join CUSTOMER
on CUST_NUM = POS_CUST_NUM
where POS_ITEMID = 2) x
join pos
on x.cust_num = pos.pos_cust_num
where pos_itemid in (1, 2)
答案 1 :(得分:0)
必须是OR ...列不能具有两次相同的值。
SELECT DISTINCT CUST_FNAME“FIRST NAME”,CUST_LNAME“LAST NAME”,POS_TIME“TIME”,POS_DATE“DATE”来自POS,客户 WHERE CUST_NUM = POS_CUST_NUM AND(POS_ITEMID = 1 OR POS_ITEMID = 2);
我在查询中添加了括号。我希望这会有所帮助。
编辑:或者Brian DeMilia在评论中说,在(1,2)中的POS_ITEMID中使用
答案 2 :(得分:0)
不确定,但这可能比Brian在上面做的那样有效。此外,我现在无法访问数据库,因此我的语法可能略有偏差。
select CUST_NUM, CUST_FNAME, CUST_LNAME, pos_time, pos_date
from CUSTOMER c1,POS p1
where c1.cust_num = p1.pos_cust_num
and p1.pos_itemid=1
and exists (select 'x' from
pos p2
where p2.pos_cust_num=p1.pos_cust_num
and p2.pos_itemid=2)
基本上,给我每个订购商品1的位置以及同一客户订购商品2的记录所在的位置。