2016-06-17 3 views
0

거의 비슷한 질문을 모두 PIVOT을 사용하여 제안했지만 내 경우에 사용하는 방법을 이해할 수 없었습니다. 단일 행 결과를 단일 열 결과로 변환

이 결과는
+-------+------+------+------+-----+------+-----+------+-----+-----+------+-----+-----+------+-------+ 
| H01 | H02 | H03 | H04 | H05 | H06 | H07 | H08 | H09 | H10 | H11 | H12 | H13 | H14 | H15 | 
+-------+------+------+------+-----+------+-----+------+-----+-----+------+-----+-----+------+-------+ 
| 11802 | 2239 | 1575 | 2230 | 833 | 3189 | 152 | 4234 | 617 | 428 | 2211 | 263 | 783 | 3954 | 15922 | 
+-------+------+------+------+-----+------+-----+------+-----+-----+------+-----+-----+------+-------+ 

내가 하나의 열에서 그것을 갖고 싶어하지만, 작업을 수행하는 방법을 잘 모릅니다 설정 반환 내 쿼리

SELECT 
    SUM(CONVERT(INT,H01)) as H01, 
    SUM(CONVERT(INT,H02)) as H02, 
    SUM(CONVERT(INT,H03)) as H03, 
    SUM(CONVERT(INT,H04)) as H04, 
    SUM(CONVERT(INT,H05)) as H05, 
    SUM(CONVERT(INT,H06)) as H06, 
    SUM(CONVERT(INT,H07)) as H07, 
    SUM(CONVERT(INT,H08)) as H08, 
    SUM(CONVERT(INT,H09)) as H09, 
    SUM(CONVERT(INT,H10)) as H10, 
    SUM(CONVERT(INT,H11)) as H11, 
    SUM(CONVERT(INT,H12)) as H12, 
    SUM(CONVERT(INT,H13)) as H13, 
    SUM(CONVERT(INT,H14)) as H14, 
    SUM(CONVERT(INT,H15)) as H15 
FROM 
    IslemFisi 
WHERE 
    (H01 = 1) OR (H02 = 1) OR (H03 = 1) OR (H04 = 1) OR 
    (H05 = 1) OR (H06 = 1) OR (H07 = 1) OR (H08 = 1) OR 
    (H09 = 1) OR (H10 = 1) OR (H11 = 1) OR (H12 = 1) OR 
    (H13 = 1) OR (H14 = 1) OR (H15 = 1) 

입니다. 피벗을 사용하면 보이는대로 일부 집계 함수가 필요하지만이 시점에서 집계 할 항목이 없습니다.

+3

https://technet.microsoft.com/en-us/library/ms177410(v=sql.105).aspx – krish

답변

1
;WITH cte AS (
--put your query here 
) 

SELECT H, [VALUES] 
FROM (
    SELECT * 
    FROM cte) as p 
UNPIVOT (
    [VALUES] FOR H IN (H01, H02, H03, H04 ...etc) 
) as unpvt 

출력 : 당신은 UNPIVOT 사용할 필요가

H VALUES 
H01 11802 
H02 2239 
....