A란 테이블에
이름 | 번호 | 나이 | 직급 | 월급 | 월급지급월
A 1 30 B 500 2012.02
A 1 30 B 650 2012.03
A 1 30 B 620 2012.04
A 1 30 B 530 2012.05
A 1 30 B 510 2012.06
A 1 30 B 490 2012.07
이 데이터를
이름|번호|나이|직급|201202|201203|201204.......
A 1 30 B 500 650 530 ....
이렇게 표현가능할까요? DECODE 함수가 아닌 UNION ALL 이나 등등.. 방법이 궁금합니다!
decode함수가 아니라는 말씀은 select max(decode(col6,'2012.02',col5)) .. group by col1, col2, col3, col4 요런 방법 말고 다른 방법 말씀하시는 거죠? pivot 써보세요.
with t as ( select 'A' col1, '1' col2, '30' col3, 'B' col4, '500' col5, '2012.02' col6 from dual union all select 'A' col1, '1' col2, '30' col3, 'B' col4, '650' col5, '2012.03' col6 from dual union all select 'A' col1, '1' col2, '30' col3, 'B' col4, '620' col5, '2012.04' col6 from dual union all select 'A' col1, '1' col2, '30' col3, 'B' col4, '530' col5, '2012.05' col6 from dual union all select 'A' col1, '1' col2, '30' col3, 'B' col4, '510' col5, '2012.06' col6 from dual union all select 'A' col1, '1' col2, '30' col3, 'B' col4, '490' col5, '2012.07' col6 from dual ) select * from t pivot (max(col5) val for col6 in ('2012.02' mon02,'2012.03' mon03,'2012.04' mon04,'2012.05' mon05, '2012.06' mon06,'2012.07' mon07))