SELECT *
FROM (테이블 & 집계할 쿼리문)
PIVOT (그룹함수 (집계컬럼) FOR 피벗 대상 컬럼명 IN([피벗컬럼값],...) )
AS PIVOT_RESULT
CREATE PROCEDURE [dbo].[SP_부서별 목표실적집계_PIVOT]
AS
BEGIN
SET NOCOUNT ON
CREATE TABLE #목표
(
부서코드 NVARCHAR(10),
담당자코드 NVARCHAR(10),
목표금액 NUMERIC(18,0)
)
CREATE TABLE #매출(
부서코드 NVARCHAR(10),
담당자코드 NVARCHAR(10) ,
매출금액 NUMERIC(18,0)
)
INSERT INTO #목표 (부서코드,담당자코드, 목표금액)VALUES ('A1','A1-1',100000);
INSERT INTO #목표 (부서코드,담당자코드, 목표금액)VALUES ('A1','A1-2',200000);
INSERT INTO #목표 (부서코드,담당자코드, 목표금액)VALUES ('A2','A2-1',300000);
INSERT INTO #목표 (부서코드,담당자코드, 목표금액)VALUES ('A3','A3-1',400000);
INSERT INTO #매출 (부서코드,담당자코드, 매출금액)VALUES ('A1','A1-1',90000);
INSERT INTO #매출 (부서코드,담당자코드, 매출금액)VALUES ('A1','A1-2',150000);
INSERT INTO #매출 (부서코드,담당자코드, 매출금액)VALUES ('A2','A2-1',250000);
INSERT INTO #매출 (부서코드,담당자코드, 매출금액)VALUES ('A2','A2-2',100000);
INSERT INTO #매출 (부서코드,담당자코드, 매출금액)VALUES ('A4','A4-1',200000);
#목표 테이블에는 컬럼 A4이 없고
#매출 테이블에는 컬럼 A3이 없다
SELECT 부서코드,
금액 = SUM(목표금액),
구분 = '목표금액'
INTO #자료집계
FROM #목표
GROUP BY 부서코드
UNION ALL
SELECT 부서코드,
금액 = SUM(매출금액),
구분 = '매출금액'
FROM #매출
GROUP BY 부서코드
SELECT P.구분,
A1 = ISNULL(P.A1,0),
A2 = ISNULL(P.A2,0),
A3 = ISNULL(P.A3,0),
A4 = ISNULL(P.A4,0)
FROM #자료집계 A
PIVOT (SUM(금액) FOR 부서코드 IN ([A1],[A2],[A3],[A4])) AS P