请参见以下SQL语句:
SELECT datediff("d", MAX(invoice.date), Now) As Date_Diff , MAX(invoice.date) AS max_invoice_date , customer.number AS customer_number FROM invoice INNER JOIN customer ON invoice.customer_number = customer.number GROUP BY customer.number
如果添加以下内容:
HAVING datediff("d", MAX(invoice.date), Now) > 365
会简单地排除Date_Diff <= 365的行吗?
HAVING子句在这里应有什么作用?
编辑:我没有遇到这里所说的答案。mdb的副本位于http://hotfile.com/dl/40641614/2353dfc/test.mdb.html(无宏或病毒)。VISDATA.EXE用于执行查询。
EDIT2:我认为问题可能出在VISDATA,因为我通过DAO遇到了不同的结果。
正如已经指出的,是的,这就是效果。为了完整起见,“ HAVING”类似于“ WHERE”,但是对于已经聚合(分组)的值(例如,在这种情况下为MAX,或者为SUM,或者为COUNT,或者其他任何聚合函数)。