我在MS Access 2013数据库中有以下查询,该数据库选择在过去7天内拥有日期的所有记录的计数:
SELECT DateValue([Proofpoint Attachment Defense.Received]) AS [Date],
Count([Proofpoint Attachment Defense.Received]) AS [count]
FROM [Proofpoint Attachment Defense]
WHERE ((([Proofpoint Attachment Defense.Received])>=DateAdd("d",-7,Date())))
GROUP BY DateValue([Proofpoint Attachment Defense.Received])
此查询产生以下结果:
Date count
10/19/2017 3
10/20/2017 2
10/25/2017 3
即使没有结果,我需要包括所有7个日期的结果:
Date count
10/19/2017 3
10/20/2017 2
10/21/2017 0
10/22/2017 0
10/23/2017 0
10/24/2017 0
10/25/2017 3
答案 0 :(得分:1)
创建一个查询或表格,生成涵盖整个范围的日期,并应用与现在相同的过滤器。
然后创建一个新的查询,其中表/查询作为源,并在字段Date上面对您的查询进行左外连接。
这将返回您现在的计数和缺少日期的Null。如果你想要Null为零,请使用Nz(CountField, 0)
。
<强>附录强>:
可以找到生成一系列日期的查询here