【发布时间】:2016-06-15 10:48:54
【问题描述】:
我正在使用 SQL Server,我有下表:
tbl_Message:
id, date, group_id
这是一个包含消息的表:它的 id、发送日期、发送组。 我正在尝试计算每天收到的消息数量。我对其进行了查询,但它不会返回没有消息的天数。查询是:
SELECT DATEADD(MINUTE, DATEDIFF(MINUTE, 0, date)/1440 * 1440,0) AS dateDay,
COUNT(*) AS countMsgDay
FROM tbl_Message
WHERE group_id = 1
GROUP BY DATEADD(MINUTE, DATEDIFF(MINUTE, 0, date)/1440 * 1440,0)
例子:
对于 tbl_Message
id | date | group_id
----------------------------------------
1 | 2014-10-01 21:04:00.000 | 1
2 | 2014-10-03 21:09:00.000 | 1
查询返回:
dateDay | countMsgDay
---------------------------------
2014-10-01 00:00:00.000 | 1
2014-10-03 00:00:00.000 | 1
而我想要的是:
dateDay | countMsgDay
---------------------------------
2014-10-01 00:00:00.000 | 1
2014-10-02 00:00:00.000 | 0
2014-10-03 00:00:00.000 | 1
【问题讨论】:
-
您将需要一种方法来为丢失的日期生成数据。一种选择是日期表,您可以将其添加到您的架构中。
标签: sql sql-server