데이터베이스 개발자 질문과 답변 게시판

데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.

PIVOT 사용 질문좀 드립니다

umtaeng 2017.08.11 14:33 Views : 2698

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

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

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
9960 SQL Server 와 SQL Server Agent 계정 비번을 몰라서..ㅠ 겨울은 2017.08.25 5564
9959 다른 3개의 테이블 합치는 쿼리 [1] 신입입니다 2017.08.25 6130
9958 MSSQL Express에서 SSIS 이용이 가능한가요? 양털목도리 2017.08.24 6288
9957 오라클을 sybase iq 로 옮길시 refcursor 문의 여우같은늑대 2017.08.24 5159
9956 안녕하세요. DB 변경을 하려고 하는데요... [17] ssunsori 2017.08.24 4029
9955 다른유형의 레코드형태를 어떻게 빨리 조회할 수 있을까요?) 데미소다감귤 2017.08.23 6362
9954 미러링 관련 문의드립니다. [1] 천송 2017.08.23 6369
9953 Partition table 질문 있습니다 [2] sin 2017.08.23 5391
9952 MSSQL 에서 웹 API 데이터를 가져올 수 있나요? [5] 그리드 2017.08.22 5290
9951 중복키 발생 원인추적 조언 부탁 드립니다. [1] 박우덩 2017.08.21 7367
9950 윈도우 인증시 접속 질문 입니다. 엄 태영 2017.08.21 6936
9949 select where절 isnull() 사용 질문있습니다. [1] 하하흐흐 2017.08.20 6103
9948 고수님들 쿼리문 질문드립니다.. [1] MS치킨송 2017.08.18 7219
9947 키를 어떻게 잡아야 좋을까요? [1] 데미소다감귤 2017.08.17 5729
9946 일자 쿼리 질문입니다. [1] 희망나라 2017.08.16 5459
9945 테이블 조인 쿼리 질문 드립니다. [4] newcomer 2017.08.14 3705
9944 ms_sql LDF/MDF화일 이동시 데이터 베이스 속도 저하 [1] 쭈환이 2017.08.11 2461
» PIVOT 사용 질문좀 드립니다 [4] umtaeng 2017.08.11 2698
9942 변수선언과 관련된 질문입니다. [2] LJstyleS 2017.08.10 4625
9941 동일 카운터 집계시 대표 행 하나만 나오게하기 [1] 개발좋아 2017.08.09 3815





XE Login