我可以从指定的日期范围获得一个计数行,如下所示:
SELECT table.[EVENT NAME], Count(*) AS [Count]
FROM table
WHERE [EVENT]='alphabetical' And table.DATE>=#11/20/2010# And (table.DATE)<=#11/26/2010#
GROUP BY table.[EVENT NAME];
但是如何添加具有不同日期范围的多行?
[EVENT NAME],[DATE 11/20-11/26],[DATE 11/27-12/3], etc...
修改 的
数据看起来像这样
event1;1/11/2010
event1;1/11/2010
event2;1/11/2010
event2;1/11/2010
event2;1/11/2010
event3;1/11/2010
event1;1/12/2010
event1;1/12/2010
event2;1/12/2010
event2;1/12/2010
event4;1/12/2010
event4;1/12/2010
等
并且想要这样的东西(最好有更多列):
event1;2;2
event2;3;2
event3;1;0
event4;0;2
答案 0 :(得分:2)
您可以按日期使用group by子句和分组。
您没有提供包含预期结果的示例记录,这有助于我们帮助您:)。 换句话说发布更多信息.. 但据我所知,你需要根据日期范围进行统计。
所以,如果您有2010年1月1日的10行 和1/2/2010有20个引用的行 和1/3/2010有6个参考行......你想要这样的输出:
1/1/2010 10
1/2/2010 20
1/3/2010 6
所以SELECT COUNT(*), MyDate FROM MyTable GROUP BY MyDate
要回答有关日期范围的问题,请考虑如何按组工作,通过组合符合条件的所有集合来对一组数据进行分组。因此,当您按日期分组时,它会按一个日期分组。您需要一个日期范围,因此每一行都应该了解或了解范围(从头到尾)。因此,您需要通过SQL生成每个行中的这些列。
修改强>
例如
SELECT Count(*), DATEADD(day, -10, GetDate()) AS StartDate, DATEADD(day, 10, GetDate()) AS EndDate
FROM MyTable GROUP BY StartDate, EndDate
Access具有类似的功能,可以将日期添加到日期,因此请查看MS Access。然后只为每列生成一个开始和结束日期。