题
希望有人能帮助我解决这个错误“列Sales.No_',因为它不是在聚合函数或GROUP BY子句包含在选择列表中无效。” ... 我花了几天的理解这个错误,但失败了:( 我的查询: -
SELECT SH.[No_], SH.[Sell-to Customer No_], SH.[Sell-to Contact No_],
SH.[Sell-to Customer Template Code], MAX (A.[Version No_])
FROM [Sales] AS SH
LEFT JOIN [Sales Archive] A ON (SH.[Document Type] = A.[Document Type]
AND SH.[No_]=A.[No_]
AND SH.[Doc_ No_ Occurrence]=A.[Doc_ No_ Occurrence])
WHERE (SH.[Document Type]='0' and SH.[Order]='1')
解决方案
在“MAX”功能需要一组通过,如果你有一个非集合列。 所以,你需要通过SH添加一个组。[否_] ...
此外,我已经重新格式化您的查询,所以我可以读取它更容易-hope这是确定 -
select SH.[No_]
, SH.[Sell-to Customer No_]
, SH.[Sell-to Contact No_]
, SH.[Sell-to Customer Template Code]
, MAX (A.[Version No_])
from [Sales] AS SH
LEFT JOIN [Sales Archive] A ON
(SH.[Document Type] = A.[Document Type]
AND SH.[No_]=A.[No_]
AND SH.[Doc_ No_ Occurrence]=A.[Doc_ No_ Occurrence]
)
where (SH.[Document Type]='0' and SH.[Order]='1')
group by SH.[No_]
, SH.[Sell-to Customer No_]
, SH.[Sell-to Contact No_]
, SH.[Sell-to Customer Template Code]
其他提示
这是因为你已经使用的聚集函数(MAX),所以剩余的所选的列还必须使用聚集函数或一组由子句。例如
select SH.[No_],SH.[Sell-to Customer No_],SH.[Sell-to Contact No_],
SH.[Sell-to Customer Template Code],MAX (A.[Version No_])
from [Sales] AS SH LEFT JOIN [Sales Archive] A ON (SH.[Document Type] = A.[Document Type]
AND SH.[No_]=A.[No_] AND SH.[Doc_ No_ Occurrence]=A.[Doc_ No_ Occurrence])
where (SH.[Document Type]='0' and SH.[Order]='1')
group by SH.[No_],SH.[Sell-to Customer No_],SH.[Sell-to Contact No_],
SH.[Sell-to Customer Template Code]
不隶属于 StackOverflow