PIVOT 기능 사용하기(행열 변환) - SqlServer
행을 열로 변환 할때 사용하는 기능입니다.
실무에서 년월단위로 데이터가 입력된 경우에 빈번하게 사용하게 됩니다.
운동 계획을 예로 들어봤습니다.
--임시 테이블을 생성
DECLARE @Temp TABLE
(
Field VARCHAR(10) --구분
,PlanYYMM VARCHAR(6) --계획월
,PlanQty INT --계획수량
);
--데이터를 월단위로 입력한다.
INSERT INTO @Temp VALUES('벤치프레스','201401', 20);
INSERT INTO @Temp VALUES('벤치프레스','201402', 30);
INSERT INTO @Temp VALUES('벤치프레스','201403', 40);
--케틀벨을 월단위로 100개씩 증가..ㄷㄷ
INSERT INTO @Temp VALUES('케틀벨','201401', 100);
INSERT INTO @Temp VALUES('케틀벨','201402', 200);
INSERT INTO @Temp VALUES('케틀벨','201403', 300);
--기본으로 조회 해보면 당연히 값들이 행단위로 표시
SELECT
*
FROM @Temp;
--PIVOT 기능을 사용하여 행을 열로 변환
SELECT
*
FROM
(
SELECT
Field
, PlanYYMM
, PlanQty
FROM @Temp
)AS A
PIVOT
(
--SUM 이나 COUNT로 집계를 해야 한다.
SUM(A.PlanQty)
FOR PlanYYMM IN ([201401],[201402],[201403])
--이때 년월을 대괄호로 감싸야 한다.
) AS B
간단하죠?
'프로그램 경험 > Database' 카테고리의 다른 글
[SqlServer] 월별 누계 금액 구하기 (0) | 2014.11.19 |
---|---|
[SqlServer] 분기별 실적 쿼리 하기(DATEPART 기능 사용) (0) | 2014.09.19 |
[SqlServer] 실행 프로시저 찾기 (0) | 2014.08.06 |
[SqlServer] 데이터에서 숫자만 빼고 특수문자들 제거 하기 (0) | 2014.07.31 |
[SqlServer] SQL Server 2008 암호 저장 기능 안되는 미친 버그 (0) | 2014.07.08 |