쿼리 용도 : 직원은 각각 DB에 나열된 여러 위치에 있습니다. 그러나 쿼리는 각 위치 수준에 대해 가장 최근의 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