Главная страница
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.016 c
4-83787
Jack666
2003-03-25 17:53
2003.05.26
Как определить и установить последовательность запуска сервисов?


14-83650
Dimaz-z
2003-05-02 20:48
2003.05.26
Как уменьшить размер оперативной памяти, занимаемый программой?


1-83438
Андрей
2003-05-13 08:08
2003.05.26
Как ограничить кол-во одновременно запущенных потоков


14-83691
Darkin
2003-05-06 01:58
2003.05.26
При попытке Внесений изменений в БД ругается??


8-83617
zenov
2003-02-12 15:55
2003.05.26
multimedia