我有一個結果集,它由一個日期字段和值列組成。SQL Server:按日期字段分組,按時間和日期排序
日期列可以是從周,月,幾個月到幾年的範圍。格式爲YYYY-mm-dd hh:mm:ss.ssss(例如,2015-03-01 00:00:00.000)
值列是一個簡單的小數。
我很難按照我想要的方式獲得結果。
從下面的查詢中,您可能會看到我正在嘗試實現的目標。 我正在從結果集中選擇相對月份,小時數,日期和值。
SELECT
CONVERT(VARCHAR(2), datefield, 108) AS hourSlot,
SUM(value) AS hourTotal,
DATEPART(day,datefield) as day,
CASE CONVERT(VARCHAR(2), datefield, 108)
WHEN @stationStartTime
THEN 1
ELSE 0
END AS sortOrder
FROM
@hourTotalTemp
WHERE
DATEPART(MM, datefield) = 3
GROUP BY
DATEPART(day,datefield)
ORDER BY
day, sortOrder, CONVERT(VARCHAR(2), datefield, 108)
正如你所見。我需要結果按小時分組。然後按電臺的開始時間排序,也按月份的日期排序。
編輯:
如上所述,用於查詢的最終結果。
將是它的月回報小時插槽,從定義的「起始時間」開始,相對天(S)(1,2,3,4,5,6,7th等),和那麼這些日子的價值。
結果爲@hourtotalTemp
datefield value
------------------------------
2015-02-01 00:00:00.000 0
2015-02-01 01:00:00.000 0
2015-02-01 02:00:00.000 0
2015-02-01 03:00:00.000 0
2015-02-01 04:00:00.000 0
2015-02-01 05:00:00.000 0
編輯設置
這就是我想實現與查詢什麼。頂部的時間,左邊的一天。數據在中間。
1日起有沒有顯示格式。](http://stackoverflow.com/questions/30032915/how-to-cast-the-datetime-to-time/30033028#30033028)2.請編輯您的問題,包括一些示例數據(最好是ddl + dml)和所需的輸出。 –
@Zohar感謝您的輸入。我已根據要求進行了修改。 – dannyb2100