데이타.
A칼럼 B칼럼 C칼럼 D칼럼 금액칼럼
3월 111 666 ㄱㄱ 2만
3월 222 666 ㅈㅈ 1만
3월 333 666 ㄷㄷ 5만
4월 222 666 ㅈㅈ 2만
4월 425 777 ㅂㅂ 3만
4월 254 777 ㄴㄷ 4만
....
결과.
B C C3윌금액 C4월금액 D D3월금액 D4월금액
111 666 8만 0 ㄱㄱ 2만 1만
222 666 8만 3만 ㅈㅈ 1만 2만
333 666 8만 0 ㄷㄷ 5만 0
425 777 0 7만 ㅂㅂ 0 3만
254 777 0 7만 ㄴㄷ 0 4만
이런식으로 나와야하는데요.
지금 3일째 해매고 있습니다 ㅜ
폰으로 보시는 분은 가로화면으로 보시면 잘 보입니다
제대로 이해한건지 모르겠습니다만..?
with t as ( select '3월' a, 111 b, 666 c, 'ㄱㄱ' d, 20000 e from dual union all select '3월', 222, 666, 'ㅈㅈ', 10000 from dual union all select '3월', 333, 666, 'ㄷㄷ', 50000 from dual union all select '4월', 222, 666, 'ㅈㅈ', 20000 from dual union all select '4월', 425, 777, 'ㅂㅂ', 30000 from dual union all select '4월', 254, 777, 'ㄴㄷ', 40000 from dual ) select b,c,sum(m3_2),sum(m4_2),d, sum(m3_1), sum(m4_1) from ( select b, c, d, sum(decode(a,'3월',e,0)) over(partition by a,c) m3_2, sum(decode(a,'4월',e,0)) over(partition by a,c) m4_2, decode(a,'3월',e,0) m3_1, decode(a,'4월',e,0) m4_1 from t ) group by b,c,d order by c
WITH t AS ( SELECT '3월' a, 111 b, 666 c, 'ㄱㄱ' d, 2 e FROM dual UNION ALL SELECT '3월', 222, 666, 'ㅈㅈ', 1 FROM dual UNION ALL SELECT '3월', 333, 666, 'ㄷㄷ', 5 FROM dual UNION ALL SELECT '4월', 222, 666, 'ㅈㅈ', 2 FROM dual UNION ALL SELECT '4월', 425, 777, 'ㅂㅂ', 3 FROM dual UNION ALL SELECT '4월', 254, 777, 'ㄴㄷ', 4 FROM dual ) SELECT b , c , SUM(SUM(DECODE(a, '3월', e))) OVER(PARTITION BY c) c3 , SUM(SUM(DECODE(a, '4월', e))) OVER(PARTITION BY c) c4 , d , SUM(DECODE(a, '3월', e)) d3 , SUM(DECODE(a, '4월', e)) d4 FROM t WHERE a IN ('3월', '4월') GROUP BY c, b, d ;