首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL: HAVING子句

SQL: HAVING子句
EN

Stack Overflow用户
提问于 2010-04-30 22:45:05
回答 7查看 5K关注 0票数 3

请参阅以下SQL语句:

代码语言:javascript
复制
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 

如果添加了以下内容:

代码语言:javascript
复制
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体验到了不同的结果。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-04-30 22:53:43

正如已经指出的,是的,这就是效果。为了完整性,“HAVING”类似于“WHERE”,但对于已经聚合(分组)的值(例如,本例中的MAX、SUM、COUNT或任何其他聚合函数)。

票数 5
EN

Stack Overflow用户

发布于 2010-04-30 22:46:11

是的,它会排除那些行。

票数 1
EN

Stack Overflow用户

发布于 2010-04-30 22:47:36

是的,这就是它会做的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2745308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档