데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
안녕하세요..
데이터를 1월 부터 12월까지 보여줄려고 하는데..
감이 오질 않아서 문의 드립니다.
데이터 입력 현황
컬럼1 컬럼2 컬럼3
201701 A부서 3점
201701 B부서 1점
201701 C부서 1점
201701 D부서 2점
201702 A부서 3점
201702 B부서 2점
201702 C부서 1점
201702 D부서 2점
201703 A부서 3점
201703 B부서 2점
201703 C부서 1점
201703 D부서 2점
컬럼1은 년월 입력필드 입니다.
위와 같이 입력된 데이터를
201701 201702 201703 .... 201712
A부서 3 3 3
B부서 1 2 2
C부서 1 1 1
D부서 2 2 2
위와 같이 표기를 하고 싶습니다.
각 부서의 점수를 월별로 조회를 할려고 하는데
감이 오질 않습니다.
4월달 부터 입력된 데이터가 없어서
01월 부터 12월까지.. 모든 필드가 조회 되어야 합니다.
좋은 방법이 있으면 부탁드리겠습니다.
감사합니다.
Comment 2
-
이리
2017.12.20 10:01
이렇게 하시면 비슷한 결과가 나오긴 합니다.; WITH CTE(컬럼1, 컬럼2, 컬럼3)AS(SELECT '201701', 'A부서', '3점' UNION ALLSELECT '201701', 'B부서', '1점' UNION ALLSELECT '201701', 'C부서', '1점' UNION ALLSELECT '201701', 'D부서', '2점' UNION ALLSELECT '201702', 'A부서', '3점' UNION ALLSELECT '201702', 'B부서', '2점' UNION ALLSELECT '201702', 'C부서', '1점' UNION ALLSELECT '201702', 'D부서', '2점' UNION ALLSELECT '201703', 'A부서', '3점' UNION ALLSELECT '201703', 'B부서', '2점' UNION ALLSELECT '201703', 'C부서', '1점' UNION ALLSELECT '201703', 'D부서', '2점')SELECT 컬럼2 AS ' ', SUBSTRING([201701], 1, 1) AS [201701], SUBSTRING([201702], 1, 1) AS [201702], SUBSTRING([201703], 1, 1) AS [201703], SUBSTRING([201704], 1, 1) AS [201704], SUBSTRING([201705], 1, 1) AS [201705], SUBSTRING([201706], 1, 1) AS [201706], SUBSTRING([201707], 1, 1) AS [201707], SUBSTRING([201708], 1, 1) AS [201708], SUBSTRING([201709], 1, 1) AS [201709], SUBSTRING([201710], 1, 1) AS [201710], SUBSTRING([201711], 1, 1) AS [201711], SUBSTRING([201712], 1, 1) AS [201712]FROM(SELECT *FROM CTEPIVOT(MAX(컬럼3)FOR 컬럼1 IN ([201701], [201702], [201703], [201704], [201705], [201706], [201707], [201708], [201709], [201710], [201711], [201712])) AS P) AS T1 -
호짱
2017.12.20 10:11
빠른 답변 감사드립니다.
빨리 테스트 해 봐야겠습니다.
감사합니다.