sql - Access 告诉我我的字段之一不是聚合函数的一部分,但这似乎不是真的

标签 sql ms-access ms-access-2007

所以我尝试运行一个查询,但我遇到了一个相当常见的错误:

"You tried to execute a query that does not include the specified expression 'X' as part of an aggregate function"

,其中 X 是不属于聚合函数的字段。通常这是一个非常简单的错误,但是在我的情况下,没有指定字段,错误只是:

"...specified expression '' as part of an..." 

我已经尝试搜索但找不到任何其他发生这种情况的案例。最让我难过的是,我正在处理一个精确查询的示例案例,以尝试重新创建错误,虽然语法几乎相同,但示例案例工作得很好。我已经尝试将示例案例复制并粘贴到真实文件中,并将示例字段名称替换为真实名称,但它仍然给我一个错误。我真的很困惑。这是实际的 SQL:

SELECT 

qry_merge2_v2.Concatenate2, 
IIf((([Second Date? (dd/mm/yyyy)] & qry_merge2_v2.Concatenate2) In (SELECT qry_concatenate_dictionary.Concatenate FROM qry_concatenate_dictionary)),1,0) AS [Counter]

FROM qry_merge2_v2

GROUP BY qry_merge2_v2.Concatenate2, qry_merge2_v2.Period;

下面是我尝试复制错误的示例代码,当它在自己的文件中运行时实际上不会产生任何错误:

SELECT 

qry_datenamerate.sName AS MerchantName, 
IIf((([Second Date? (dd/mm/yyyy)] & qry_datenamerate.sName) In (SELECT qry_namedateconcat.Concat FROM qry_namedateconcat)),1,0) AS [Counter]

FROM qry_datenamerate

GROUP BY qry_datenamerate.sName, qry_datenamerate.sDate;

最佳答案

为您的第二个查询字段定义一个合适的聚合函数:

SELECT 

qry_merge2_v2.Concatenate2, 
SUM(IIf((([Second Date? (dd/mm/yyyy)] & qry_merge2_v2.Concatenate2) In (SELECT qry_concatenate_dictionary.Concatenate FROM qry_concatenate_dictionary)),1,0)) AS [Counter]

FROM qry_merge2_v2

GROUP BY qry_merge2_v2.Concatenate2, qry_merge2_v2.Period;

关于sql - Access 告诉我我的字段之一不是聚合函数的一部分,但这似乎不是真的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10953881/

相关文章:

mysql - Visual Studio 2010 Ultimate 无法连接到 MySql

java - MySQL "No operations allowed after statement closed"

mysql - 我必须查询两次才能得到这个结果吗?

mysql - 找到比以前的增长

mysql - 使用 Workbench 将 MS Access 迁移到 MySQL 时出现日期时间错误

java - 使用 Java 将媒体放入 Access 数据库

c++ - MS Access 中 NZ 函数的 ADO 等价物?

c# - 如何使用 C# 在运行时在 MS Access 中创建存储查询

sql - 如何使用事件记录计算 has_many 关系?

ms-access - 后期绑定(bind)全局变量?