PIVOT 사용 질문좀 드립니다

umtaeng 2017.08.11 14:33 Views : 2727

안녕하세요, 일주일전에 질문글을 올렸는데 큰 도움이 되었습니다, 감사합니다.

그런데 한가지 질문이 더 있어서 글을 올리게 되었습니다. 지난번월별회원가입 통계를 물어봣는데

WITH CTE_MONTHS AS (      

SELECT '2017-07-01' AS THIS_DATE


UNION ALL      


SELECT CONVERT(VARCHAR(10), DATEADD(DAY, 1, THIS_DATE), 120) THIS_DATE      

FROM CTE_MONTHS      

WHERE CONVERT(VARCHAR(10), DATEADD(DAY, 1, THIS_DATE), 120) <= '2017-07-31'

)      


SELECT

A.THIS_DATE

,ISNULL(TOTAL_COUNT, 0) AS NEW

FROM

CTE_MONTHS A

LEFT JOIN (

SELECT

REGIST_DATE = CONVERT(VARCHAR(10),REGIST_DATE,121)

,COUNT(*) TOTAL_COUNT

FROM

TB_USER

WHERE

REGIST_DATE BETWEEN '2017-07-01' AND '2017-08-01'

GROUP BY CONVERT(VARCHAR(10),REGIST_DATE,121)

) B ON A.THIS_DATE = B.REGIST_DATE

친절하게 알려주셨는데, 이걸 PIVOT을 사용해서 날짜가 행이 되는 형태를 뽑고 있는데 잘안되서.. 질문드립니다.

WITH CTE_MONTHS AS (      
SELECT '2017-07-01' AS THIS_DATE

UNION ALL      

SELECT CONVERT(VARCHAR(10), DATEADD(DAY, 1, THIS_DATE), 120) THIS_DATE      
FROM CTE_MONTHS      
WHERE CONVERT(VARCHAR(10), DATEADD(DAY, 1, THIS_DATE), 120) <= '2017-07-31'
)      

SELECT
*
FROM
CTE_MONTHS A
LEFT JOIN (
SELECT 
--REGIST_DATE
REGIST_DATE = CONVERT(VARCHAR(10),REGIST_DATE,121)
,COUNT(*) TOTAL_COUNT
,CAMPUS_CODE
FROM
TB_USER
WHERE
REGIST_DATE BETWEEN '2017-07-01' AND '2017-08-01'
GROUP BY CAMPUS_CODE,CONVERT(VARCHAR(10),REGIST_DATE,121)
) B ON A.THIS_DATE = B.REGIST_DATE
PIVOT (sum(TOTAL_COUNT) FOR THIS_DATE IN ([2017-07-01],[2017-07-02],[2017-07-03],[2017-07-04],[2017-07-05],[2017-07-06],[2017-07-07],[2017-07-08],[2017-07-09],[2017-07-10],[2017-07-11],
[2017-07-12],[2017-07-13],[2017-07-14],[2017-07-15],[2017-07-16],[2017-07-17],[2017-07-18],[2017-07-19],[2017-07-20],[2017-07-21],[2017-07-22],[2017-07-23],[2017-07-24],
[2017-07-25],[2017-07-26],[2017-07-27],[2017-07-28],[2017-07-29],[2017-07-30],[2017-07-31]))  AS PVT

이렇게 하니 얼추나오는것 같긴한데 결과가 없는 CAMPUS_CODE는 아예나오지도않고.. 모양이 약간 이상하네요..ㅠ
손좀봐주실분계신가요..
No. Subject Author Date Views
Notice 2023년 1월 - SQLER의 업데이트 강좌 리스트 코난(김대우) 2023.01.02 448
9970 프로시저 관련 문의 드립니다. [2] newsoft 2017.08.30 3588
9969 MSSQL 2014 PARTITION 질문드립니다. sin 2017.08.30 3222
9968 SQL Server Data Tools에 대해 알고싶습니다 Coronesa 2017.08.29 3290
9967 EXECUTE후 트랜잭션 개수는 BEGIN및 COMMIT문 수가 일치하지 않음을 나타냅니다 [3] 능능능 2017.08.29 4726
9966 procedure 사용시 쿼리를 변수로 전달받아 사용하기 [3] 김이이 2017.08.28 4975
9965 특정행부터 특정행까지의 합을 구하고 싶습니다.ㅠ [2] umtaeng 2017.08.28 6610
9964 시간을 계산하는 함수 문의드립니다. [1] 스타서베이 2017.08.26 5581
9963 대용량 테이블 insert, update 오태식 2017.08.25 5093
9962 SQL 에서 '파일을 액섹스할 수 없거나 디스크공간 부족으로 인하여 msdb를 ' 오류가 나옵니다. 겨울은 2017.08.25 5592
9961 SQL 개체 탐색기에 확장이 없이 나오는데, 어떻게 해야하나요? [레벨:4]겨울은 겨울은 2017.08.25 5593
9960 SQL Server 와 SQL Server Agent 계정 비번을 몰라서..ㅠ 겨울은 2017.08.25 5594
9959 다른 3개의 테이블 합치는 쿼리 [1] 신입입니다 2017.08.25 6148
9958 MSSQL Express에서 SSIS 이용이 가능한가요? 양털목도리 2017.08.24 6312
9957 오라클을 sybase iq 로 옮길시 refcursor 문의 여우같은늑대 2017.08.24 5190
9956 안녕하세요. DB 변경을 하려고 하는데요... [17] ssunsori 2017.08.24 4077
9955 다른유형의 레코드형태를 어떻게 빨리 조회할 수 있을까요?) 데미소다감귤 2017.08.23 6389
9954 미러링 관련 문의드립니다. [1] 천송 2017.08.23 6438
9953 Partition table 질문 있습니다 [2] sin 2017.08.23 5426
9952 MSSQL 에서 웹 API 데이터를 가져올 수 있나요? [5] 그리드 2017.08.22 5460
9951 중복키 발생 원인추적 조언 부탁 드립니다. [1] 박우덩 2017.08.21 7450





XE Login