gpt4 book ai didi

mysql - Datediff & Group By 不起作用?

转载 作者:行者123 更新时间:2023-11-29 03:38:31 27 4
gpt4 key购买 nike

我正在尝试构建一个查询 (QueryB) 以便在我的 MS Access 控件中引用它。我知道我的源表达式语法正确,我有一个与 QueryA 非常相似的工作控件。

我只更改了字段和查询名称。但是,我不断收到 QueryB 的臭名昭著的 #Name? 错误。 QueryA 和 QueryB 之间的区别在于 SQL 代码。 QueryA 有一个 GROUP BYSUM() 而 QueryB 只有 DATEDIFF()。我已尝试将 GROUP BY 添加到 QueryB,但一直收到 [...execute query does not include the specified expression as part of aggregate function]。

查询 B:

SELECT IIF(DATEDIFF("d",Date_X,Date_Y)>100),
ROUND(IIF(DATEDIFF("d",Date_X,Date_Y)/30,2),
DATEDIFF("d",Date_X,Date_Y)
AS DATEDIFF_X_Y
FROM LAB_DATES GROUP BY LAB_DATES.ID;

这是在 MS Access SQL 中。

ControlB 源引用 MS Access 中的 QueryB:

=DLookUp("[DATE_DIFF_X_Y]",
"[QueryB]",
"[LAB_DATES.ID] = " & [Forms]![Lab Results Form]![Textbox_DATE_ID])

删除 GROUP BY 时,此查询运行正常,但我在控件中收到 #Name? 错误。所有数据均来自 ODBC MySQL。 Access 是前端。

编辑:我可以删除GROUP BY。但是我会收到 #Name? 错误。我的目标是显示 Date_X 和 Date_Y 之间的日期差异。

最佳答案

[...execute query does not include the specified expression as part of aggregate function]

该错误消息已经表明使用 GROUP BY 不适用于聚合函数。

DATEDIFF() 是一个聚合函数,不适用于 GROUP BY

原因是 GROUP BY 减少了您的数据结果,并且您正在使用的列的每个不同条目只显示一行。

无论如何,您对该查询的目标是什么?我相信这个问题有不同的解决方案。 GROUP BY DATE.ID 听起来您正在对主键进行 GROUP BY 无效,因为根据定义,主键是唯一的。

关于mysql - Datediff & Group By 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17884960/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com