在MS Access中选择范围中的所有日期

时间:2017-10-26 12:31:54

标签: sql ms-access ms-access-2013

我在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

1 个答案:

答案 0 :(得分:1)

创建一个查询或表格,生成涵盖整个范围的日期,并应用与现在相同的过滤器。

然后创建一个新的查询,其中表/查询作为源,并在字段Date上面对您的查询进行左外连接。

这将返回您现在的计数和缺少日期的Null。如果你想要Null为零,请使用Nz(CountField, 0)

<强>附录

可以找到生成一系列日期的查询here