2014-01-29 39 views
2

我的表由以下數據如何使兩列到行和剩餘的,因爲它是在SQL Server 2008中

ID | ST_NAME| ST_DATE_TIME| ST_SPEED 
-----------------------------------------------  
1 |E11|July, 14 2013 01:00:00+0000| 106 
3 |E10 |July, 14 2013 02:00:00+0000| 124 
4 |E10 |July, 14 2013 03:00:00+0000| 117 
5 |E10 |July, 15 2013 01:00:00+0000| 124 
6 |E10 |July, 15 2013 02:00:00+0000| 106 
7 |E10 |July, 15 2013 03:00:00+0000| 106 

我需要以下結果

ST_Name| 1:00| 2:00| 3:00| ... |24:00 
E11|106| Null| Null|.... |Null 
E10|124|..... 

使每個小時st_name作爲的作爲一列。每個st_name作爲速度的總和作爲

這是我試圖

SELECT 
    '01:00' as "01:00", '02:00' as "02:00", '03:00' as "03:00" .... '24:00' as  "24:00" 
FROM 
    (SELECT 
     ST_SPEED, substring(CONVERT(VARCHAR, ST_DATE_TIME, 114), 1, 5) AS p 
FROM t_data) AS s 
PIVOT 
    (SUM(ST_SPEED) FOR p in ("01:00", "02:00", "03:00")) AS PivotTable 

但顯示出一些其他的結果,請幫助...

回答

1

嘗試這一個 -

DECLARE @t TABLE 
(
    ID INT IDENTITY(1,1) PRIMARY KEY, 
    ST_NAME CHAR(3), 
    ST_DATE_TIME DATETIME, 
    ST_SPEED TINYINT 
) 

INSERT INTO @t (ST_NAME, ST_DATE_TIME, ST_SPEED) 
VALUES 
    ('E11', '20130714 01:00:00', 106), 
    ('E10', '20130714 02:00:00', 124), 
    ('E10', '20130714 03:00:00', 117), 
    ('E10', '20130715 01:00:00', 124), 
    ('E10', '20130715 02:00:00', 106), 
    ('E10', '20130715 03:00:00', 106) 

SELECT * 
FROM (
    SELECT ST_NAME, ST_SPEED, CONVERT(VARCHAR(5), ST_DATE_TIME, 8) AS p 
    FROM @t 
) s 
PIVOT 
(
    SUM(ST_SPEED) FOR p IN (
     [01:00], [02:00], [03:00], 
     [04:00], [05:00], [06:00], 
     [07:00], [08:00], [09:00], 
     [10:00], [11:00], [12:00], 
     [13:00], [14:00], [15:00], 
     [16:00], [17:00], [18:00], 
     [19:00], [20:00], [21:00], 
     [22:00], [23:00], [24:00]) 
) p 

輸出 -

ST_NAME 01:00  02:00  03:00  04:00  05:00  06:00  07:00  08:00  09:00  10:00  11:00  12:00  13:00  14:00  15:00  16:00  17:00  18:00  19:00  20:00  21:00  22:00  23:00  24:00 
------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- 
E10  124   230   223   NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL 
E11  106   NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL  NULL 
+0

thanku soooooo much。 ..它的工作非常... ..! –

+0

不客氣@ PaveenKumar.erakkingal :) – Devart

相關問題