row데이터를 column 데이터 변환 질문드립니다. 1 2 3,049

by 짱구 [DB 기타] sql row column 변환 [2015.10.28 15:42:33]


데이터가

code   name    month    val
00     hello   01       4
01     hi      01       4
02     meet    01       3
03
04
........
00     hello   02       2
01     hi      02       3
02     meet    02       3
03
04
.........

code 데이터는 제한이 없구요 month는 12월까지 데이터가 있습니다.

이렇게 들어 있습니다.

이것을

code          name         month_01_ val         month_02_val  .....  month_12_val
00            hello        4                     2
01            hi           4                     3
02            meet         3                     3
..........

이렇게 하고싶습니다.

by 창조의날개 [2015.10.28 15:55:56]

WITH TT(code,   name,    month,    val) AS (
SELECT '00',     'hello',   '01',       4 FROM DUAL UNION ALL
SELECT '01',     'hi',      '01',       4 FROM DUAL UNION ALL
SELECT '02',     'meet',    '01',       3 FROM DUAL UNION ALL
SELECT '00',     'hello',   '02',       2 FROM DUAL UNION ALL
SELECT '01',     'hi',      '02',       3 FROM DUAL UNION ALL
SELECT '02',     'meet',    '02',       3 FROM DUAL
)
SELECT *
FROM TT
PIVOT ( SUM(val) FOR month IN ( '01' month_01_val, '02' month_02_val, '03' month_03_val
                              , '04' month_04_val, '05' month_05_val, '06' month_06_val
                              , '07' month_07_val, '08' month_08_val, '09' month_09_val
                              , '10' month_10_val, '11' month_11_val, '12' month_12_val) )
ORDER BY CODE
;

 


by 짱구 [2015.10.28 17:02:38]

감사합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입