-- PIVOT 문을 실행시킬 동적 쿼리문
DECLARE @EXCUTESQL NVARCHAR(MAX)
-- PIVOT FOR 문에 들어갈 필드의 값
DECLARE @DYNAMICDATE_STR NVARCHAR(MAX)
-- 시작일자
DECLARE @STARTDATE DATETIME
-- 종료일자
DECLARE @ENDDATE DATETIME
SET @STARTDATE ='20150401'
SET @ENDDATE = '20150430'
SET @DYNAMICDATE_STR =''
-- while문을 이용하여 For문 안의 들어갈 필드 문장 구성
WHILE (@STARTDATE <= @ENDDATE)
BEGIN
SET @DYNAMICDATE_STR = @DYNAMICDATE_STR + '[' + CONVERT(NVARCHAR(8),@STARTDATE ,112) + '],'
SET @STARTDATE = DATEADD(DAY,1,@STARTDATE)
END
SET @EXCUTESQL = '
SELECT * FROM
(
SELECT DATE , SQTY , PQTY FROM TESTTABLE
) AS DATA
PIVOT
(
SUM(SQTY)
FOR DATE IN (' + @DYNAMICDATE_STR +')
) AS PIVOTT
'
-- 마지막문장에 ','를 없애줍니다.
SELECT @EXCUTESQL = REPLACE(@EXCUTESQL , '[' + CONVERT(NVARCHAR(8),@ENDDATE,112) + '],' , '[' + CONVERT(NVARCHAR(8),@ENDDATE,112) + ']' )
EXEC SP_EXECUTESQL @EXCUTESQL
'MS-SQL > Query' 카테고리의 다른 글
[MSSQL] 로그 축소 간단한 예제 (0) | 2015.04.29 |
---|---|
[MS-SQL 2012] SEQUENCE 생성 (0) | 2015.04.23 |
[MS-SQL] 사용자 정의 정렬 해보기 간단 예제 (0) | 2015.03.23 |
[MSSQL] OPENQUERY와 파라미터를 대입하여 조회 (0) | 2015.03.04 |
[MSSQL] 간단하게 나누기 나머지 구하기 (0) | 2015.02.03 |