我遇到一个SQL查询问题,我想搜索在一段时间内终止的合同。这是我的示例数据,因此我想获取201803的contract1和201804的contract2-两个合约在第一个月内结束;如果此数据来自表rcontracts
,我应该使用什么查询?谢谢
答案 0 :(得分:0)
用列名替换后,您可以尝试此查询吗?
SELECT t1.dt + 1,
t1.c
FROM rcontracts t1
LEFT JOIN rcontracts t2
ON t1.c = t2.c
AND t1.dt + 1 = t2.dt
WHERE t2.c IS NULL
AND t1.dt < (SELECT Max(dt)
FROM rcontracts)
答案 1 :(得分:0)
您只想要not exists
吗?
select rc.*
from rcontracts rc
where not exists (select 1
from rcontracts rc2
where rc2.contract1 = rc2.contract2 and
rc2.yyyymm > 201803
);
还是聚合?
select rc.contract
from rcontracts rc
group by rc.contract
having max(rc.yyyymm) < 201804;