我如何跟踪工作编号的变化

时间:2019-10-15 12:29:44

标签: oracle

enter image description here我有一个表,该表包含emp编号,工作名称,jobid和JobSubid。我希望能够确定Jobubid和Job名称更改但Jobid保持不变且Job名称更改为与先前Jobid和JobSubid相同的情况不同的名称的情况。

1 个答案:

答案 0 :(得分:1)

您可以使用分析功能。但是必须有一些列来标识记录的顺序,因此我假设必须有一些jobstartdate

Select t.*,
Case when prev_jobname <> jobname and prev_jobsubid <> jobsubid
Then 'Changed'
Else 'Not changed' 
end as result
(Select t.*
Lag(t.jobname) 
 over (partition by t.empno, t.jobid
    Order by t.jobstartdate) as prev_jobname
Lag(t.jobsubid) 
 over (partition by t.empno, t.jobid
    Order by t.jobstartdate) as prev_jobsubid
From your_table t) t

干杯!