"Group by Clause"오류에 대한 도움
-
13-09-2019 - |
문제
이 오류 "column 'sales.no_'는 집계 함수 나 그룹 별 조항에 포함되지 않기 때문에 선택 목록에 유효하지 않은이 오류로 나를 도울 수 있기를 바랍니다."...이 오류를 이해하기 위해 며칠을 보냈습니다. 실패 :( 내 질문 :-
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의 그룹을 추가해야합니다. [아니요 _] ....
또한 쿼리를 재구성하여 쉽게 읽을 수 있습니다.
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