안녕하세요 오라클 SELECT 쿼리 작성시 질문이 있어 문의드립니다!
테이블 A 가 아래구성이라 할때
컬럼1 - 1월, 2월 ,3월
컬럼2 - 종류1, 종류2, 종류3
컬럼3 - 항목1, 항목2, 항목3
컬럼4 - 금액
데이터는 이런식으로 들어갑니다.
1월 | 종류1 | 항목1 | 1000 |
1월 | 종류1 | 항목2 | 1000 |
1월 | 종류1 | 항목3 | 2000 |
1월 | 종류2 | 항목1 | 1500 |
1월 | 종류2 | 항목2 | 1800 |
이하동일이구요.
이럴때 아래처럼 SELECT 해오는 방법이 있을까요??
1월 | 종류1 | 4000 |
1월 | 항목1 | 1000 |
1월 | 항목2 | 1000 |
1월 | 항목3 | 2000 |
1월 | 종류2 | 5300 |
1월 | 항목1 | 2000 |
1월 | 항목2 | 1500 |
1월 | 항목3 | 1800 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | WITH t AS ( SELECT '1월' 연월, '종류1' 종류, '항목1' 항목, 1000 금액 FROM dual UNION ALL SELECT '1월' , '종류1' , '항목2' , 1000 FROM dual UNION ALL SELECT '1월' , '종류1' , '항목3' , 2000 FROM dual UNION ALL SELECT '1월' , '종류2' , '항목1' , 2000 FROM dual UNION ALL SELECT '1월' , '종류2' , '항목2' , 1500 FROM dual UNION ALL SELECT '1월' , '종류2' , '항목3' , 1800 FROM dual ) SELECT 연월 , NVL(항목, 종류) 구분 , SUM (금액) 금액 FROM t GROUP BY 연월, 종류, ROLLUP (항목) ORDER BY 연월, 종류, 항목 NULLS FIRST ; |