데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
결과 값을
R19 1100-4849 1200-35000 1300-70000 1500-70000 1100-161132 1200-9999000 1300-19500 1500- 130000
R23 1100--76041 1500-70000 1100--105783 1500-130000
이런식으로 CHU Column Group 해서 표현하고 싶은데 어렵네요 SUM을 하면 안되고 오직 결과값만 보여야하는데
고수님들 부탁드립니다.
피벗을 이용 하시면...
(
SELECT 'R19' CHU , '1100' TYPE , 0 ID , 4849 VALUE1 , 161132 VALUE2 UNION ALL
SELECT 'R19' CHU , '1200' TYPE , 2 ID , 35000 VALUE1 , -99999000 VALUE2 UNION ALL
SELECT 'R19' CHU , '1300' TYPE , 0 ID , 70000 VALUE1 , 19500 VALUE2 UNION ALL
SELECT 'R19' CHU , '1500' TYPE , 0 ID , 70000 VALUE1 , 130000 VALUE2 UNION ALL
SELECT 'R23' CHU , '1100' TYPE , 0 ID , -76041 VALUE1 , -105783 VALUE2 UNION ALL
SELECT 'R23' CHU , '1500' TYPE , 0 ID , 70000 VALUE1 , 130000 VALUE2
)
SELECT CHU
, MAX([1100A]) [1100A]
, MAX([1200A]) [1200A]
, MAX([1300A]) [1300A]
, MAX([1500A]) [1500A]
, MAX([1100B]) [1100B]
, MAX([1200B]) [1200B]
, MAX([1300B]) [1300B]
, MAX([1500B]) [1500B]
FROM ( SELECT *
, TYPE+'A' TYPEA
, TYPE+'-'+CONVERT(VARCHAR,VALUE1) VAL1
, TYPE+'B' TYPEB
, TYPE+'-'+CONVERT(VARCHAR,VALUE2) VAL2
FROM RES ) R
PIVOT (
MAX(VAL1)
FOR [TYPEA] IN ( [1100A],[1200A],[1300A],[1500A] )
) AS PVT1
PIVOT (
MAX(VAL2)
FOR [TYPEB] IN ( [1100B],[1200B],[1300B],[1500B] )
) AS PVT2
GROUP BY CHU