2017-08-28 62 views
0

我有以下查询结合了来自2个独立表的计数。我希望能够根据日期范围对其进行过滤。这里是我一起工作的查询:如何添加日期范围过滤器来计数查询

SELECT combined.name, Count(combined.id) AS CountOfid 
FROM (select ecmreq as name, entryid as id from log 
    union all 
    select comauthor, comid from elcom 
) AS combined 
GROUP BY combined.name; 

如果日志中有一个名为LOGDATE日期字段和ELCOM有场名为comdate我将如何设置这让所有罪状像2017年8月21日的范围之间和08/28/2017?

回答

1

您只需将它包含在子查询的WHERE中。

SELECT combined.name, Count(combined.id) AS CountOfid 
FROM (select ecmreq as name, entryid as id from log WHERE logdate >= '2017-08-21' AND logdate <= '2017-08-28' 
    union all 
    select comauthor, comid from elcom WHERE comdate >= '2017-08-21' AND comdate <= '2017-08-28' 
) AS combined 
GROUP BY combined.name; 
+0

感谢那些伟大的工作。 – spacerobot

+0

@spacerobot:在Access中,日期表达式应该总是包装在八卦中:'#2017-08-21#'。 – Gustav

0

WHERE LOGDATE> = '2017年8月21日' AND LOGDATE < = '2017年8月28日'

或多或少你在找什么?

当然,您可以用同样的方法检查elcom,如果您不想包含一个或其他实际边界日期,您可以调整比较。

1
SELECT combined.name, Count(combined.id) AS CountOfid 
FROM (select ecmreq as name, entryid as id, logdate as recdate from log 
    union all 
    select comauthor, comid, comdate as recdate from elcom 
) AS combined 
where combined.recdate between '08/21/2017' and '08/28/2017' 
GROUP BY combined.name;