我一直在想辦法通過SQL查詢方式從數據庫中檢索一些數據。我試圖避免以編程方式進行。使用SQL查詢幫助
基本上源表是
ID,日期時間,計數
我想要得到的計數的總和爲日期時間的該期間內的每個不同ID的定義的時間段。
任何想法的人?
我一直在想辦法通過SQL查詢方式從數據庫中檢索一些數據。我試圖避免以編程方式進行。使用SQL查詢幫助
基本上源表是
ID,日期時間,計數
我想要得到的計數的總和爲日期時間的該期間內的每個不同ID的定義的時間段。
任何想法的人?
嘗試這樣:
select ID, sum(Count)
from foo
where [DateTime] between @beginning and @end
group by ID;
這是假設你有兩個變量,@beginning
和@end
被類型爲DateTime
。
非常感謝。我沒有意識到* group by *。 – Ablue 2009-12-09 23:43:47
正確,但我不會使用BETWEEN,因爲它在範圍的兩端都是包含的。這意味着如果您將範圍堆疊在一起,則會將結果完全等於邊界條件複製到2個不同的輸出中。 – 2009-12-09 23:59:26
you want a GROUP BY for this
select ID, sum(Count) as Sum
from yourTable
where DateTime between startDate and endDate
group by ID
SELECT ID, SUM(Count)
FROM yourTable
WHERE DateTime => '2009-10-01' AND DateTime < '2009-11-01'
GROUP BY ID;
日期,你應該使用> =和<,使用週期的開始和下一個週期的開始,像這樣:
WHERE [DateTime] >= @StartPeriod AND [DateTime] < @StartNextPeriod
..making全事情:
SELECT ID, SUM(Count) AS Cnt
FROM dbo.someTable
WHERE [DateTime] >= @StartPeriod AND [DateTime] < @StartNextPeriod
GROUP BY ID;
否則,您運行丟失的東西或包括太多的風險。
非常感謝您的及時幫助:) – Ablue 2009-12-09 23:56:32