【问题标题】:sql db2 select most recent entry of each employee and their previous entrysql db2 选择每个员工的最新条目及其以前的条目
【发布时间】:2015-08-16 13:39:50
【问题描述】:

我有一个表,其中包含每个员工的条目。每次他们换工作时,都会创建一个新条目。这是按日期完成的。所以,员工,开始日期,工作,结束日期。我正在寻找每个员工最近的工作和他们以前的工作。我可以得到最大或最近的工作,但得到以前的工作是我遇到的问题。

列标题:员工、开始日期、工作、结束日期

以下是我尝试过的:

with E as
(select
  rownum = row_number() over (partition by employee order by startdate)
,employee
,startdate
,job
,enddate
from table )
Select * 
from E
where e.rownum >1

任何帮助将不胜感激。

提前致谢。

【问题讨论】:

标签: sql db2


【解决方案1】:

试试这个

with E as
(select
  rownum = row_number() over (partition by employee order by startdate desc)
,employee
,startdate
,job
,enddate
from table )
Select 
employee
,startdate
,job
,enddate
,case when  rownum =  1 then 'recent' else 'previous' End as Job_stat
from E
where e.rownum <=2

【讨论】:

  • 就像一个后续问题一样,是否有办法只显示有工作变动的员工。并非所有员工都有工作变动
  • 对不起,我没明白。可能是一个带有样本数据和预期输出的新问题
猜你喜欢
  • 2021-10-19
  • 2021-11-26
  • 1970-01-01
  • 2011-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多