MSDN에 잘 나와 있는 내용입니다.
MSDN의 경로는 아래와 같습니다.
제가 만들고자 하는 내용은 아래와 같습니다.
데이터는 일자, 회사코드, 사용자 아이디 와 같은 경태로 입력됩니다.
이걸 일자에 회사코드 별 사용자 수를 출력하려고 합니다.
이럴 때 피벗을 이용하면 쉽게 해결 할 수 있는데요.
아래와 같은 모양을 두 번째 그림처럼 만들려고 합니다.
첫 번째 이미지의 코드는 아래와 같습니다.
SELECT CREATE_DAY, COMP_CODE, COUNT(USER_ID) AS USER_CNT FROM TB_VISITED_LOG WHERE COMP_CODE IS NOT NULL GROUP BY COMP_CODE, CREATE_DAY ORDER BY CREATE_DAY DESC
두 번째 이미지의 코드는 아래와 같습니다.
DECLARE @Prod varchar(2000) SELECT @Prod = '' SELECT @Prod = @Prod + '[' + COMP_CODE + '],' FROM (SELECT Distinct COMP_CODE FROM TB_VISITED_LOG WHERE COMP_CODE IS NOT NULL) A SELECT @Prod = LEFT(@Prod, LEN(@Prod) - 1) DECLARE @NSQL NVARCHAR(MAX) SELECT @NSQL = N' SELECT CREATE_DAY, ' + @Prod + ' FROM ( SELECT CREATE_DAY, COMP_CODE, ISNULL(COUNT(USER_ID), 0) AS CNT FROM TB_VISITED_LOG WHERE COMP_CODE IS NOT NULL GROUP BY CREATE_DAY, COMP_CODE ) T PIVOT (MAX(CNT) FOR COMP_CODE IN (' + @Prod + ') ) AS PVT ORDER BY CREATE_DAY DESC ' PRINT @NSQL EXECUTE dbo.SP_EXECUTESQL @NSQL
위의 코드에 피벗 코드가 포함되어 있습니다.
현재 저는 Count 회사 사용자가 필요하여 PIVOT의 다음의 (MAX가 들어간 것이나 여기에 SUM, COUNT 등의 코드가 들어갈 수 있습니다.
좀 해 보시면 금방 이해 될 것입니다.
감사합니다.
'Developer' 카테고리의 다른 글
Sharepoint 2010 ASP.NET Chart Control 사용하기(Web.config 구성방법) (0) | 2012.09.28 |
---|---|
무료 SVN 저장소.. 네이버 개발자 센터를 소개합니다! (2) | 2012.09.13 |
jquery plugin 페이스북 스타일 링크 도우미 [textbox, textarea 링크(URL) 체크하고 이미지 가져오기] (0) | 2012.09.11 |
How to : Sharepoint 2010 View Search Results XML Data(검색 xml결과 확인하는 방법) (0) | 2012.09.10 |
Sharepoint 2010 Web Analytics not working(Web Analytics 동작 안함) (0) | 2012.09.10 |