[英]How to select rows where date is greater than the date in another row?
我有一张有客户卡的桌子。 一个客户可以拥有几张卡。 每张客户卡都有一行。 如果客户有几张卡,则有几行。 有两种不同的卡类型A和B。对于每张卡,将存储last_used
日期。
我想检查是否存在同时具有A 和 B类型客户卡的客户,其中卡B的最后使用日期比卡A的最后使用日期年轻。
这是我的表CUSTOMER_CARDS。
card_id | customer_id | card_type | last_used
----------------------------------------------
1 | c1 | A | 2017-07-07
2 | c1 | B | 2016-04-01
3 | c2 | A | 2017-06-04
4 | c2 | B | 2017-07-03
5 | c3 | A | 2016-02-23
6 | c3 | B | 2017-04-17
我需要一条选择语句,该语句选择客户c2
的customer_id
,该customer_id
的B型卡比其A型卡年轻。我该如何实现?
您需要Group By
和Having
条款
select customer_id
from yourtable
Group by customer_id
Having Min(case when card_type = 'B' then last_used end) > Max(case when card_type = 'A' then last_used end)
你可以尝试这样的事情吗?
SELECT A.card_id, A.customer_id, A.card_type, A.last_used
FROM CUSTOMER_CARDS A
INNER JOIN CUSTOMER_CARDS B ON A.customer_id=B.customer_id
WHERE A.card_type='B'
AND B.card_type='A' AND A.last_user > B.last_used
;
select d1.cusid,d1.cardtyp,d1.lstusd
from democat d1
join democat d2 on d1.cusid = d2.cusid
where d1.lstusd < d2.lstusd and d1.cardtyp = 'B'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.