2015-06-21 73 views
0

我與這些列時間戳[日期時間],FromSysId [INT],CrUSSDCnt [INT]轉換整數行轉換成列雖然分組由日期

 TimeStamp   FromSysId   CrUSSDCnt 
2015-06-18 18:58:15.380  25     7 
2015-06-18 19:45:17.130  21     8 
2015-06-18 20:43:18.920  22     15 
2015-06-18 21:34:33.090  25     6 
2015-06-18 22:55:33.317  22     10 

我下表要顯示的每個FromSysId AS柱而計數每個FromSysId的CrUSSDCnt柱上並通過小時這樣輸出分組TimeStime:

 TimeStamp   Sys25 Sys22  Sys21  
2015-06-18 18:00:00  2  1   0 
2015-06-18 19:00:00  4  6   3 
2015-06-18 20:00:00  0  5   6 
2015-06-18 21:00:00  0  7   2 
2015-06-18 22:00:00  1  0   4 

我嘗試使用樞軸或聯合和我未能兩者來概括像這樣。 任何幫助。

+0

請修改您的問題與您的查詢不起作用。 –

回答

0

這個問題的難點在於提取時間。這裏有一種方法:

select dateadd(hour, 0, datediff(hour, 0, timestamp)) as ToTheHour, 
     sum(case when FromSysId = 25 then CrUSSDCnt else 0 end) as Sys25, 
     sum(case when FromSysId = 22 then CrUSSDCnt else 0 end) as Sys22, 
     sum(case when FromSysId = 21 then CrUSSDCnt else 0 end) as Sys21 
from table t 
group by dateadd(hour, 0, datediff(hour, 0, timestamp)) 
order by ToTheHour; 

其餘的只是有條件的聚合。

+0

請閱讀其他答案,我解釋了這個問題,謝謝 –

+0

@AbdallaOmar。 。 。如果你有問題,你應該問它作爲*問題*而不是答案。問另一個問題,如果你還需要幫助。 –