안녕하세요.
회사에 인터넷이 되지 않아 집에와서 질문을 올리네요.
조회조건 : 시작일자 ~ 종료일자
select dpet_cd
, manager
, bas_dt
from ( select dept_cd
, manager
, bas_dt
, rank() over (partition by dept_cd , substr(bas_dt, 0, 6) order by bas_dt desc) rnk
from (
select 'A10000' dept_cd , '12800449' manager , '20130101' bas_dt , '20130403' ed_dt from dual
union all
select 'A10000' dept_cd , '12505115' manager , '20130403' bas_dt , '20130416' ed_dt from dual
union all
select 'A10000' dept_cd , '12801631' manager , '20130416' bas_dt , '99991231' ed_dt from dual
)
where ed_dt > '20130201' AND BAS_DT <='20130530'
)
where rnk = 1
------------------ 조회결과 --------------
DEPT_CD | MANAGER | BAS_DT
--------------------------------------------------------------
A10000 12800449 20130101
A10000 12801631 20130416
이렇게 나오는 결과를...
조회기간의 FROM ~ TO 의 월별로 데이타를 출력하고 싶습니다.
예를 들면 2~ 3 월은 2013년1월1일부터 MANAGER 인 12800449 가 출력이 되고.
4~5월은 4월16일부터 MANAGER 인 12801631 가 출력이 되는 구조로..
(월중변경인 경우 해당월의 마지막으로 임명된 사람이 그 월의 최종 MANAGER 가 되는 업무요건이어서 내부에서 rank 를 두었습니다.)
MONTH | DEPT_CD | MANAGER | BAS_DT
------------------------------------------------------------------------
201302 A10000 12800449 20130101
201303 A10000 12800449 20130101
201304 A10000 12801631 20130416
201305 A10000 12801631 20130416
이런식으로 출력이 되었으면 합니다.
염치불구하고 답변 부탁드려요..
일하는 곳 인터넷이 안되니 ㅡㅜ
아침에 일어나서 질문 올리네요.. 아 요샌 인터넷 안되는 곳이 왜이리 많은 걸까요?