Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.26;
Скачать: CL | DM;

Вниз

SELECT, JOIN and GROUP BY   Найти похожие ветки 

 
yurikon ©   (2003-05-06 09:46) [0]

Нужно соеденить две таблицы: главную (ExpenNo - код затрат, Price - сумма) и справочник (ActNo, Act, ParentNo - как обычно) и сгрупировать по условию ParentNo = 1:

SELECT ExpenNo, Price
FROM tVed17DetEx A LEFT JOIN tAct B ON A.ExpenNo=B.ActNo
WHERE B.ParentNo=1
GROUP BY A.ExpenNo

Выдает ошибку
When GROUP BY exists, every simple field in projectors must be in GROUP BY.

Если указать в group by еще и A.Price, то ошибка исчезает, но запрос такой на фиг не нужен :-(


 
Соловьев ©   (2003-05-06 09:51) [1]


> A.Price

должен быть тогда агрегированым - count, sum, max...


 
Johnmen ©   (2003-05-06 09:55) [2]

Интересно, а что ты предполагал увидеть в поле Price при таком варианте запроса, как у тебя ????????????????


 
yurikon ©   (2003-05-06 14:05) [3]

>>Соловьев © (06.05.03 09:51)

>>A.Price

>>должен быть тогда агрегированым - count, sum, max...

Агрегированные функции обязывают вставить оператор GROUP BY, обратное не верно.


 
yurikon ©   (2003-05-06 14:07) [4]

>> Johnmen © (06.05.03 09:55)
>> Интересно, а что ты предполагал увидеть в поле Price при таком варианте запроса, как у тебя ????????????????

Все привильно, надо sum(A.Price), но ведь не работает и так!



 
Соловьев ©   (2003-05-06 14:16) [5]

SELECT A.ExpenNo, Sum(A.Price)
FROM tVed17DetEx A LEFT JOIN tAct B ON A.ExpenNo=B.ActNo
WHERE B.ParentNo=1
GROUP BY A.ExpenNo



> Агрегированные функции обязывают вставить оператор GROUP
> BY, обратное не верно

я тебе как раз говорил про правлиьное...


 
Danilka ©   (2003-05-06 14:16) [6]

yurikon © (06.05.03 14:07)
а как ругается?


 
yurikon ©   (2003-05-06 14:21) [7]

>Danilka © (06.05.03 14:16)
>yurikon © (06.05.03 14:07)
>а как ругается?

Вот так:
When GROUP BY exists, every simple field in projectors must be in GROUP BY.



 
Danilka ©   (2003-05-06 14:23) [8]

yurikon © (06.05.03 14:21)
она так ругается после sum(A.Price)?
то есть на запрос:
Соловьев © (06.05.03 14:16)
?


 
yurikon ©   (2003-05-06 14:28) [9]

Все теперь не ругается :-))


 
Johnmen ©   (2003-05-06 14:58) [10]

>Агрегированные функции обязывают вставить оператор GROUP BY, обратное не верно.

Не обязывают, и в обратную сторону не обязывает...:)
Ну это так, к слову...





Страницы: 1 вся ветка

Текущий архив: 2003.05.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
1-83561
Till
2003-05-13 14:37
2003.05.26
Export in Excel


3-83387
Kirill_S
2003-05-06 10:32
2003.05.26
Заполнить программно ComboBox


1-83576
Salvator
2003-05-13 11:49
2003.05.26
Работа с Word через Delphi


3-83396
Lefan
2003-05-06 11:37
2003.05.26
TDataModule


11-83430
Jazzy$
2002-08-20 15:36
2003.05.26
Listview + ImageList