我有一个审核表(AUDIT),如下所示:
empid|division id|dept id|lastupdated
1| A| 20|xxxxx
3| C| 10|xxxxxx
6| D| 10|xxxxxx
1| D| 10|xxxxxx
1| B| 10|xxxxxx
3| E| 10|xxxxxx
对于此表中的每一行,我想将数据与前一个记录进行比较(基于最后更新日期)。
结果应该过滤记录,其中deptid在2个记录之间进行比较时不相等。
Pseudocode:
For each record in AUDIT t1
1.Select dept id,max(lastupdated) from AUDIT t2 where t1.lastupdated > t2.lastupdated
2.Select t1.empid if t1.deptid<> t2.deptid(from step 1)
这是否可以作为单个SQL查询 - 而不是临时表操作?
答案 0 :(得分:0)
select * from AUDIT a inner join AUDIT b
on a.empid = b.empid and a.[division id] = b.[division id]
and b.lastupdated =(select max(lastupdated) from AUDIT c where lastupdated < a.lastupdated) where a.deptid <> b.deptid