SQL*Plus, 데이터 연결 방법 – Union, Group by

SQL*Plus, 데이터 연결 방법 – Union, Group by

구분 당월 증감액 증감율
1월 생략 생략 생략
2월 생략 생략 생략
3월 생략 생략 생략
4월 생략 생략 생략
5월 생략 생략 생략
6월 생략 생략 생략
7월 생략 생략 생략
8월 생략 생략 생략
9월 생략 생략 생략
10월 생략 생략 생략
11월 생략 생략 생략
12월 생략 생략 생략
SELECT rpad(월,2)||'월' 구분
	, sum(당월) 당월
	, sum(당월 – 전월) 증감액
	, sum(decode(당월,0,null, (당월–전월)*100 / 당월)) 증감율
FROM 
( 
	SELECT 
		decode(NO, 2, MM+1, MM+0) 월
		, nvl(sum(decode(NO,1,AMT)), 0) 당월
		, nvl(sum(decode(NO,2,AMT)), 0) 전월
	FROM 
	(
		SELECT decode(년월, '199612', '00', substr(년월,5,2)) MM
			, sum(AMT)  AMT
		FROM    매출집계
		WHERE 사업장 = '1공장'
		AND 년월 between '199612' and '199712'	/* 13개월 */
		GROUP BY decode(년월, '199612', '00', substr(년월,5,2)) /* 작년은 00, 올해는 해당 월 */
	) x, COPY_T  y
	WHERE NO between decode(MM,'00',2,1) and decode(MM,'12',1,2) 
	/**
	 * 00일 때는 2(전월), 아닐 때는 1(당월)이고 12일때는 1(전월), 아닐 때는 2(당월)
	 */
	GROUP BY decode(NO, 2, MM+1, MM+0 ) 
)
GROUP BY  월 ;

원문 출처
Encore – 대용량 데이터베이스

Leave a Reply