안녕하세요 도저히 머리를 쥐어짜고 짜다가 ㅠ 안되어서
글을 올리게 됩니다. 도움 좀 부탁드리겠습니다.
ex)
사업장 | 납품처 | 품번 | 키값 | 날짜 |
서울 | 을 | 1-1 | 1111 | 2011-01-01 |
서울 | 정 | 1-1 | 2222 | 2012-01-01 |
서울 | 병 | 1-1 | 3333 | 2013-01-01 |
서울 | 병 | 1-2 | 4444 | 2013-01-01 |
현재 쿼리는 이런식으로 출력 되도록 되어 있습니다.
제가 원하는 출력되기 원하는 데이터는 아래 값입니다.
아래와 같이 같은 품번을 가진 것들 중에서 날짜가 최대 값인 것만 출력되기를 원합니다.
고수님들 도움을 요청 드립니다. 감사합니다.
사업장 | 납품처 | 품번 | 키값 | 날짜 |
서울 | 병 | 1-1 | 3333 | 2013-01-01 |
서울 | 병 | 1-2 | 4444 | 2013-01-01 |
WITH T AS ( SELECT '서울' A ,'을' B ,'1-1' C, '1111' D , '2011-01-01' E FROM DUAL UNION ALL SELECT '서울' A ,'정' B ,'1-1' C, '2222' D , '2012-01-01' E FROM DUAL UNION ALL SELECT '서울' A ,'병' B ,'1-1' C, '3333' D , '2013-01-01' E FROM DUAL UNION ALL SELECT '서울' A ,'병' B ,'1-2' C, '4444' D , '2013-01-01' E FROM DUAL ) SELECT * FROM ( SELECT T.* , ROW_NUMBER() OVER( PARTITION BY C ORDER BY E DESC) RN FROM T ) WHERE RN = 1