Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Access告诉我我的一个字段是';不是聚合函数的一部分,但它不';这似乎不是真的_Sql_Ms Access_Ms Access 2007 - Fatal编程技术网

Sql Access告诉我我的一个字段是';不是聚合函数的一部分,但它不';这似乎不是真的

Sql Access告诉我我的一个字段是';不是聚合函数的一部分,但它不';这似乎不是真的,sql,ms-access,ms-access-2007,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..." 我试着搜索

因此,我尝试运行一个查询,得到了一个相当常见的错误:

"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;

我所能建议的就是尽量简化它,看看问题是否会在某个时候消失。例如,将常量(例如,
'a'作为串联2,1作为计数器)并查看错误是否消失。如果有,慢慢地重建它,直到你分离出它不喜欢的部分。另外,如果
qry\uq
对象实际上是查询,请分别运行它们,以确保它们执行的是您期望的操作。首先感谢您的响应!最后,我试图删除IN后面的中间SELECT语句,手动添加了一个“Concatenate2”列并引用了它,现在它似乎可以工作了。它不能完全满足我的需要,但是我想我可以修改它来满足它的需要。感谢您的帮助。在原始查询表达式中,您选择了两个字段:Concatenate2和Counter。第二种方法需要应用某种聚合函数,例如first、last等,或者使用groupby语句。