请参阅以下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体验到了不同的结果。
发布于 2010-04-30 22:53:43
正如已经指出的,是的,这就是效果。为了完整性,“HAVING”类似于“WHERE”,但对于已经聚合(分组)的值(例如,本例中的MAX、SUM、COUNT或任何其他聚合函数)。
发布于 2010-04-30 22:46:11
是的,它会排除那些行。
发布于 2010-04-30 22:47:36
是的,这就是它会做的事情。
https://stackoverflow.com/questions/2745308
复制相似问题