DB

[MSSQL] PIVOT - 날짜 상위 10개 가져와서 PIVOT 하기

조셉LEE 2024. 2. 20. 14:00
반응형

날짜 상위 10개 가져와서 PIVOT 하기

DECLARE @DATE VARCHAR(1000)
  ,@DATETIME VARCHAR(1000)  = ''
  , @QUERY VARCHAR(8000)

DECLARE CURSOR1 CURSOR FOR
SELECT DISTINCT TOP 10 CONVERT(DATE, [컬럼명]) FROM [테이블명] ORDER BY 1 DESC

OPEN CURSOR1
    FETCH NEXT FROM CURSOR1 INTO @DATE
    WHILE (@@FETCH_STATUS = 0)  
  BEGIN
   SET @DATETIME = @DATETIME + '[' + @DATE + '],'
  
      FETCH NEXT FROM CURSOR1 INTO  @DATE
  END
   
    CLOSE CURSOR1;     
    DEALLOCATE CURSOR1;
   
SET @DATETIME = SUBSTRING(@DATETIME, 1 , LEN(@DATETIME) -1)

PRINT @DATETIME
   
SET @QUERY ='SELECT * FROM(
SELECT CONVERT(DATE, C.[컬럼명1]) AS CheckTime, [컬럼명2]
  FROM [테이블명] A
) AA PIVOT(MAX([컬럼명2]) FOR [컬럼명1] IN (' + @DATETIME + ')) AS PV

 Execute(@QUERY)
 

반응형
LIST

'DB' 카테고리의 다른 글

[오라클] ANSI Join 에 using문 사용  (0) 2024.02.20
[MSSQL] 날짜 구하기  (1) 2024.02.20
트랜잭션 분리  (0) 2024.02.19
[MSSQL] 시작과 종료 일자의 날짜와 DATA 가져오기  (0) 2024.02.18
[MSSQL] HINT 사용법  (1) 2024.02.17