WITH t1 ( [hour], title )
AS ( SELECT 0 ,
' 0:00:00--- 1:00:00'
UNION ALL
SELECT 1 ,
' 1:00:00--- 2:00:00'
UNION ALL
SELECT 2 ,
' 2:00:00--- 3:00:00'
UNION ALL
SELECT 3 ,
' 3:00:00--- 4:00:00'
UNION ALL
SELECT 4 ,
' 4:00:00--- 5:00:00'
UNION ALL
SELECT 5 ,
' 5:00:00--- 6:00:00'
UNION ALL
SELECT 6 ,
' 6:00:00--- 7:00:00'
UNION ALL
SELECT 7 ,
' 7:00:00--- 8:00:00'
UNION ALL
SELECT 8 ,
' 8:00:00--- 9:00:00'
UNION ALL
SELECT 9 ,
' 9:00:00--- 10:00:00'
UNION ALL
SELECT 10 ,
' 10:00:00--- 11:00:00'
UNION ALL
SELECT 11 ,
' 11:00:00--- 12:00:00'
UNION ALL
SELECT 12 ,
' 12:00:00--- 13:00:00'
UNION ALL
SELECT 13 ,
' 13:00:00--- 14:00:00'
UNION ALL
SELECT 14 ,
' 14:00:00--- 15:00:00'
UNION ALL
SELECT 15 ,
' 15:00:00--- 16:00:00'
UNION ALL
SELECT 16 ,
' 16:00:00--- 17:00:00'
UNION ALL
SELECT 17 ,
' 17:00:00--- 18:00:00'
UNION ALL
SELECT 18 ,
' 18:00:00--- 19:00:00'
UNION ALL
SELECT 19 ,
' 19:00:00--- 20:00:00'
UNION ALL
SELECT 20 ,
' 20:00:00--- 21:00:00'
UNION ALL
SELECT 21 ,
' 21:00:00--- 22:00:00'
UNION ALL
SELECT 22 ,
'22:00:00---23:00:00'
UNION ALL
SELECT 23 ,
'23:00:00---24:00:00'
),
t2
AS ( SELECT DATEPART(HOUR, OperateTime) [hour] ,
COUNT(1) AS number -- 这些字段该怎么算自己调整
FROM [MeiDongPay].[dbo].[PayOrderInfo_Midst]
WHERE OperateTime BETWEEN '2017-07-14 0:00:00'
AND '2017-07-14 23:59:59.998'
GROUP BY DATEPART(HOUR, OperateTime)
)
SELECT t1.title ,
t2.number
FROM t1
LEFT JOIN t2 ON t1.[hour] = t2.[hour]
ORDER BY t2.number