Справка по ошибке «Предложение GROUP BY» - PullRequest
1 голос
/ 07 декабря 2009

Хотел бы кто-нибудь помочь мне с этой ошибкой "Столбец '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')

Ответы [ 2 ]

2 голосов
/ 07 декабря 2009

Функция "MAX" требует группировки по, если у вас есть неагрегированные столбцы. Так что вам нужно будет добавить группу с помощью sh. [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')
group by SH.[No_]
       , SH.[Sell-to Customer No_]
       , SH.[Sell-to Contact No_]
       , SH.[Sell-to Customer Template Code]
0 голосов
/ 07 декабря 2009

Это потому, что вы использовали агрегатную функцию (MAX), поэтому остальные выбранные столбцы также должны использовать агрегатные функции или в выражении 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')
group by SH.[No_],SH.[Sell-to Customer No_],SH.[Sell-to Contact No_],
SH.[Sell-to Customer Template Code]
...