您需要一个不同的 WHERE 子句。假设您的Use_of_pool
表包含一个日期/时间字段,date_field
:
WHERE date_field >= #2012-02-21# AND date_field <= #2012-04-21#
如果date_field
值可以包含除午夜之外的时间分量,则将结束日期范围提前一天以捕获从 4 月 21 日开始的所有可能的日期/时间值:
WHERE date_field >= #2012-02-21# AND date_field <= #2012-04-22#
这应该限制行以匹配我认为你想要的。它应该通过索引提供快速的性能date_field
。
我不清楚您想要的计数……是对所有访问(会员和非会员)计算一次,还是对会员和非会员单独计算。
编辑:如果表格的每一行代表一个人的访问,您可以简单地计算行数以确定您选择的时间范围内的访问次数。
SELECT Count(*) AS CountOfVisits
FROM Use_of_pool
WHERE date_field >= #2012-02-21# AND date_field <= #2012-04-21#
请注意,同一个人的每次访问都会促成CountOfVisits
,这就是我认为您想要的。如果您想知道访问了多少不同的人,我们将需要一种不同的方法。
Edit2:听起来您可以使用 Member_ID 和 Non_Member_Name 来区分会员和非会员访问。Member_ID 对于非成员为 Null,对于成员为非 Null。Non_Member_Name 对于成员是 Null,对于非成员是非 Null。
如果是这样,请尝试使用此查询分别计算成员和非成员访问次数。
SELECT
Sum(IIf(Member_ID Is Not Null, 1, 0)) AS member_visits,
Sum(IIf(Non_Member_Name Is Not Null, 1, 0)) AS non_member_visits
FROM Use_of_pool
WHERE date_field >= #2012-02-21# AND date_field <= #2012-04-21#