안녕하세요. 이곳에서 많은 도움을 받고 있습니다.
쿼리 작성에 도움을 청합니다.
아래 SAMPLE데이타
SUB_SYS_CODE PGM_ID PGM_NAME_DESC
--------------------------------------------
GASAA GASAA0010A 도서목록및대여관리
GASAA0020A 사내문서및증빙자료관리
GASAA0030A 차량운행정보관리
GASAA0040A 지게차량운행정보관리
GASAA0050A 식수인원정보예량관리
GASAA0060A 주말 근무자현황관리
GWAPA GWAPA0010A 결재 작성함
MMGLA GWAPA0010A 결재대기함
GWAPA0020A 결재 대기함
GWAPA0030A 결재 진행함
GWAPA0040A 결재 반려함
GWAPA0050A 결재 완료함
GWAPB GWAPB0010A 지출결의서
GWAPB0020A 업무협조전
GWAPB0030A 품의서
GWAPB0040A 발주서
GWAPB0050A 근태계작성
GWAPC GWAPC0010A 문서표준양식목록
HRBAE HRBAE0010A 사원인사정보 등록
HRBAE0011I 사원인사정보 조회
HRBAE0020A 인사조직정보 등록
HRBAE0020I 인사조직정보 조회
HRBAF HRBAE0100A 직원 근무근태관리
HRBAE0200I 직원일일출근현황
HRBAZ HRBAZ0010A 표준정보관리
MMGLA0030A POR등록및확정
MMGLB MMGLB0010A 발주등록
MMGLB0020A 발주수정및확정
MMGLB0060I 발주현황조회
MMGLB0080A 업체별구매단가정보관리
MMGLC MMGLC0010A 입고등록
MMGLC0020A 입고수정
MMGLC0030I 입고내역 조회
MMGLC0040A 입고차수마감
MMPEC MMGLC0060I 세금계산서 수수현황 조회
MMGLC0120I 미입고현황
MMGLC0200A 사급자재입고관리
MMGLC0300A 소요자재공급구분현황
MMGLC0500A 묶음단위자재리스트(DSME)
MMGLD MMGLD0020A 사급자재불출등록및불출현황
---------------------
위의 데이타 샘플은 PGM_ID가 앞에서 5자리까지 유일하게 구분이 됩니다.
위의 샘플내용은 아래 쿼리에 의한 결과 입니다. ROW_NUMBER() 순위함수를 잘못 적용했는지
MMGLA GWAPA0010A 결재대기함 --- 이 잘못 표기 됩니다. ㅡ>
MMGLA MMGLA0030A POR등록및확정 -->이렇게 되어야 되는데..
제가 어떤 부분이 잘못 적용했을까요?
쿼리 조언 부탁 드립니다.
SELECT *
FROM (SELECT DECODE(RN1, 1, SUB_SYS_CODE) SUB_SYS_CODE,
DECODE(RN2, 1, PGM_ID) PGM_ID,
PGM_NAME_DESC PGM_NAME_DESC
FROM (SELECT SUB_SYS_CODE,
PGM_ID,
PGM_NAME_DESC,
ROW_NUMBER() OVER( PARTITION BY SUB_SYS_CODE ORDER BY PGM_ID, PGM_NAME_DESC) RN1,
ROW_NUMBER() OVER( PARTITION BY SUB_SYS_CODE, PGM_ID ORDER BY PGM_NAME_DESC ) RN2
FROM (SELECT DISTINCT SM004M.SUB_SYS_CODE,
SM004M.PGM_ID,
SM004M.PGM_NAME_DESC
FROM SM004M
WHERE 1 = 1
AND SM004M.NATN_LNGU_CODE = 'KO'
AND SM004M.PGM_USE_INDC = 'Y'
ORDER BY SM004M.PGM_ID
)
)
)
WHERE 1 = 1
ORDER BY PGM_ID