2014-03-13 80 views
1

這裏是我的輸入數據:樞軸不工作

model       status_description Number 
NULL        ASSIGNED   1 
CABLE CARD       ASSIGNED   56 
DCT1000       ASSIGNED   1130 
DCT1200       ASSIGNED   134 
DCT2000 Digital     ASSIGNED   21401 
DCT700 Digital      ASSIGNED   22214 
DCX3400 HD Digital Rec.   ASSIGNED   1183 
DCX700 HD Digital    ASSIGNED   1086 
CABLE CARD      CHARGE/DISCONNECT  2 
DCT1000       CHARGE/DISCONNECT  43 
與同款

和和,最終9狀態。

我想將數據顯示爲......模型左下角,頂部9個狀態分別顯示數字。我的查詢以正確的格式顯示數據,但所有計數均爲NULL。我的查詢在下面。任何想法爲什麼?

Model   ASSIGNED CHARGE/DISCONNECT DELETED HOLD OFF ISLAND OUT OF CIRCULATION 
5 Port eMTA  NULL NULL NULL NULL NULL NULL NULL NULL NULL 
6381-DSL Modem NULL NULL NULL NULL NULL NULL NULL NULL NULL 

樞軸SQL:

select Model, 'ASSIGNED' = [1], 'CHARGE/DISCONNECT' = [2], 'DELETED' = [3], 'HOLD' = [4], 'OFF ISLAND' = [5], 'OUT OF CIRCULATION' = [6], 
'PENDING' = [7], 'RETURNED/REJECTED BY CUSTOMER' = [8], 'UNASSIGNED' = [9] 
from (select model, status_description, number from jed_convert_031314) as PivotInput 
PIVOT 
(SUM(number) 
for status_description in ([1],[2],[3],[4],[5],[6],[7],[8],[9])) as PivotOutput 

謝謝!

回答

0

在你的情況我會去與動態SQL語句:

DECLARE @cols AS NVARCHAR(MAX), 
    @query AS NVARCHAR(MAX) 

select @cols = STUFF((SELECT distinct ',' + QUOTENAME(status_description) 
        from jed_convert_031314 
      FOR XML PATH(''), TYPE 
      ).value('.', 'NVARCHAR(MAX)') 
     ,1,1,'') 

set @query = 'SELECT Model,' + @cols + ' 
      from 
      (
       SELECT * 
       from jed_convert_031314 
      ) x 
      pivot 
      (
       SUM(Number) 
       for status_description in (' + @cols + ') 
      ) p ' 

execute(@query) 

SQL Fiddle

+0

真棒和完善!你對我很有幫助。 – user3416183