返回范围内而不是之前的结果

时间:2017-07-17 10:53:39

标签: ms-access

以下查询返回DATE_SENT_TO_REGISTRATIONS落在两个日期之间的记录: -

SELECT TBLBROKERAGESNEW.BROKERAGE_NAME, Count(TBLBROKERAGESNEW.BROKERAGE_NAME) AS CountOfBROKERAGE_NAME
FROM TBLQUOTESNEW LEFT JOIN TBLBROKERAGESNEW ON TBLQUOTESNEW.BROKERAGE_ID = TBLBROKERAGESNEW.ID
WHERE (((TBLQUOTESNEW.DATE_SENT_TO_REGISTRATIONS)>=#6/1/2017#) AND ((TBLQUOTESNEW.DATE_SENT_TO_REGISTRATIONS)<=#6/30/2017#))
GROUP BY TBLBROKERAGESNEW.BROKERAGE_NAME
ORDER BY Count(TBLBROKERAGESNEW.BROKERAGE_NAME) DESC;

是否可以调整此计数,以便它只计算在开始日期之前从未有过注册日期的经纪人(在这种情况下是6月1日) - 本月基本上是新的经纪人?

1 个答案:

答案 0 :(得分:2)

HAVING是分组记录的WHERE子句 如果您尝试说WHERE Min(TBLQUOTESNEW.DATE_SENT_TO_REGISTRATIONS)>=#6/1/2017#,您将收到错误,因为您无法在WHERE子句中使用聚合(MIN)函数。

这应该有效:

SELECT      TBLBROKERAGESNEW.BROKERAGE_NAME
            , Count(TBLBROKERAGESNEW.BROKERAGE_NAME) AS CountOfBROKERAGE_NAME
FROM        TBLBROKERAGESNEW INNER JOIN TBLQUOTESNEW ON TBLBROKERAGESNEW.ID = TBLQUOTESNEW.BROKERAGE_ID
GROUP BY    TBLBROKERAGESNEW.BROKERAGE_NAME
HAVING      Min(TBLQUOTESNEW.DATE_SENT_TO_REGISTRATIONS)>=#6/1/2017#

要将日期的上限限制为6月,请添加WHERE子句(在GROUP BY之前):
WHERE TBLQUOTESNEW.DATE_SENT_TO_REGISTRATIONS<#7/1/2017#