오라클 SELECT 질문 0 5 2,905

by 졔에에에에 [SQL Query] 오라클 쿼리 정렬 SQL SELECT [2023.12.13 11:14:23]


안녕하세요 오라클 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

 

by 마농 [2023.12.13 14:40:46]
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
;

 


by 졔에에에에 [2023.12.13 15:45:45]

와 감사합니다!!! 


by 졔에에에에 [2023.12.13 16:50:35]

혹시 저기서 월별 총 합계까지 나오게 할 수도 있나요???


by 마농 [2023.12.13 17:13:29]

가능합니다.
롤업의 위치를 바꾸면 됩니다.
다만 정렬 부분이나 출력 형태 등 조정이 필요하겠지요.
- 변경전 : GROUP BY 연월, 종류, ROLLUP(항목)
- 변경후 : GROUP BY 연월, ROLLUP(종류, 항목)


by 졔에에에에 [2023.12.13 17:59:23]

우왁 감사합니다!! 너무 도움됏어요!!!!

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