如何快速查找最近发生变化的数据
数据库为SQL SERVER 2008
现有一表TABLE,记录公司员工的部门变动与职务变动
表结构如下:
ID NAME DEPT(部门) DUTY(职位) TIME(变动时间)
0 TOM IT 员工 2011-4-15
0 TOM IT 项目经理 2013-4-15
0 TOM IT 部门经理 2014-4-15
1 RAY IT 员工 2013-4-15
1 RAY HR 员工 2014-4-15
如何快速查出所有最近两条记录中DURY发生变动的员工的记录
即:
TOM最近两条记录DUTY产生变化,需要被查询出来,而RAY的DUTY没有变化,则不需要
我现在用的语句是:
SELECT * FROM TABLE AS A
WHERE (SELECT TOP 1 DUTY FROM TABLE WHERE ID = A.ID ORDER BY TIME DESC)
<> (SELECT TOP 1 FROM (SELECT TOP 2 DUTY FROM TABLE WHERE ID = A.ID ORDER BY TIME DESC) ORDER BY TIME)