1
查詢的目的:員工有幾個職位,每個職位都在數據庫中列出。但是,查詢應僅返回每個職位級別具有最新effect_date的職位。具有聚合和不同的Sql查詢
例如:
Employee Position Position_Level Effect_Date Process_Level
_____________________________________________________________
1 , POS1 , 1 , 01/01/2000 ,ABC
1 , POS1 , 1 , 01/01/2002 , ABC
1 , POS1 , 1 , 01/01/2003 , ABC
1 , ABCD , 1 , 01/01/2004 , ABC
1 , POS1 , 1 , 01/01/2005 , ABC
1 , POS2 , 2 , 01/01/2000 , DEF
1 , POS2 , 2 , 01/01/2002 , DEF
1 , IRHT , 2 , 01/01/2003 , DEF
1 , POS2 , 2 , 01/01/2004 , DEF
查詢應該返回:
Employee Position Position_Level Effect_Date Process_Level
1 , POS1 , 1 , 01/01/2005 , ABC
1 , POS2 , 2 , 01/01/2004 , DEF
這可能在一個查詢中實現呢?由於我只需要記錄到Position_Level = 3,我也可以做3個單獨的查詢,但我無法爲每個職位級別獲取1個不同的記錄。
我有這個查詢,我用作起點,但顯然沒有得到我需要的結果。有什麼建議麼?
select A.*, B.pos_level,B.employee from (select position,max(effect_date)EFFECT_DATE
from paemppos
group by position) A
JOIN paemppos B
on A.POSITION=B.POSITION
我認爲你應該在僱員ID中添加一個where條件。 –
@LajosVeres。 。 。你是對的。 –
@GordonLinoff感謝您的回覆。我嘗試了你的建議,它似乎給了我需要的輸出。謝謝! – user1949354