我有以下问题。我必须为尚未签署协议的客户获取所有记录,然后2个月后他们也没有合同。与此同时,他们中的一些人签了合同。
我有这些专栏:
CUSTOMER_ID DATE CONTRACT_NO
123 2016-03-05 4433666
234 2016-03-08 6633666
456 2016-03-17 1224633
456 2016-03-11 NULL
875 2016-03-10 2466443
875 2016-03-06 NULL
422 2016-03-21 4433555
你能告诉我我能做些什么吗?
我正在使用Oracle。
答案 0 :(得分:1)
尚未签署协议的客户,然后2个月后他们没有签署协议 也有合同。
换句话说 - 对于给定的记录,检查在下个月的2个月内是否没有任何具有相同clientId且不是null contract_no的记录。
SELECT * FROM table t
WHERE NOT EXISTS (
SELECT 1 FROM table t1
WHERE t.CUSTOMER_ID = t1.CUSTOMER_ID
AND t1.DATE > t.DATE
AND t1.DATE <= t.DATE + interval '2' month
AND t1.CONTRACT_NO IS NOT NULL
)