我一直在想办法通过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