需求是这样的:表A、B的结完全全相同 : ID(主键) CARDASN(卡号) COUNT(记数)TIME(入库时间)例如:表A ID CARDASN COUNT TIME
1 001 1 08-04-05 09:09;09
2 001 2 08-04-06 09:09:08
3 002 1 08-03-07 14:11:01表B ID CARDASN COUNT TIME
1 001 4 08-04-05 10:11:54
2 002 3 08-03-09 06:11:19现在想找出 两个表中每个(重复的)卡号记数是否出现断号,出现了把它找出来,在时间上的约束是6天前到3天的记录里出现的断号才找出来。例如 找卡号为001的断号 结果应该是 ID START END
1 3 3 START 为断号的开始号 END 为断号的结束号请问该如何实现
1 001 1 08-04-05 09:09;09
2 001 2 08-04-06 09:09:08
3 002 1 08-03-07 14:11:01表B ID CARDASN COUNT TIME
1 001 4 08-04-05 10:11:54
2 002 3 08-03-09 06:11:19现在想找出 两个表中每个(重复的)卡号记数是否出现断号,出现了把它找出来,在时间上的约束是6天前到3天的记录里出现的断号才找出来。例如 找卡号为001的断号 结果应该是 ID START END
1 3 3 START 为断号的开始号 END 为断号的结束号请问该如何实现
select * from (select CARDASN,CNT st,lead(CNT) over(partition by CARDASN order by CNT) ed
from (
select CARDASN,count CNT from A where time > sysdate -6 and time < sysdate -3
union
select CARDASN,count CNT from B where time > sysdate -6 and time < sysdate -3))
where ed-st >1
所以先Union一下,再按照一张表的方式去处理。
是不是楼主没有说清楚需求啊!LZ到底想要什么?
实际测试的结果就是我说的情况,虽然是做了union,但并没按预期的逻辑进行 !