[英]Creating table from SQL Select statements and combining the results into a single record
[英]SQL Server - Combining results from a single query
使用SQL Server 2008R2,我嘗試編寫一個查詢,該查詢將返回特定時間范圍內的所有值的總和(在這種情況下,間隔為15分鍾)從長遠來看,它將用於標識丟失的數據(每個服務器應為每15分鍾返回12的值)。 我已經到了可以得到我正在尋找的結果的地步,但是我需要一種將它們全部合並到同一查詢中的方法。 以下代碼(此日期通常由變量定義,在這種情況下,以09/01/2013為例):
Select SUM(Accounted_for) 'accounted for',date,time,server
from dbmetrics.dbo.tblmissing
where DATE='09/01/2013'
and (TIME between '00:00:00' and '23:59:59')
and SERVER='Server01'
group by DATE, TIME, server , DATEPART(hour,time),
DATEPART(MINUTE,time),DATEPART(second,time) / 96
GO
結果按此方式返回”返回的結果如下所示
Number Date Time Server
4 2013-09-01 12:00:01.0000000 server01
6 2013-09-01 12:00:02.0000000 server01
2 2013-09-01 12:00:15.0000000 server01
10 2013-09-01 12:15:02.0000000 server01
2 2013-09-01 12:15:09.0000000 server01
我想看到的是
12 2013-09-01 12:00:00.0000 Server01
12 2013-09-01 12:15:00.0000 Server01
您可能需要GROUP BY
的[Server]
,而不是讓MAX()
的[Server]
。 正如亞倫·伯特蘭德( Aaron Bertrand )所述,您的時間價值恰好間隔15分鍾。 該查詢將把時間舍入到分鍾並按此對數據進行分組。
SELECT SUM([Number]) AS [Number],
[Date],
CONVERT(time, DATEADD(minute, DATEDIFF(minute, 0, [Time]), 0)) AS [Time],
MAX([Server])
FROM [Table]
GROUP BY [Date],
DATEADD(minute, DATEDIFF(minute, 0, [Time]), 0)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.