Главная страница
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.01 c
7-83774
dir_er_
2003-03-29 03:11
2003.05.26
модем занят


14-83680
dbDev
2003-05-05 06:27
2003.05.26
Ресурсы.


1-83488
From_X
2003-05-15 16:22
2003.05.26
DLL Как плугин? Есть проблемы!


4-83830
magister
2003-03-25 17:44
2003.05.26
Как рисовать поверх рабочего стола? (типа экранное меню)


3-83390
Raduga
2003-05-06 14:21
2003.05.26
Механизм работы TAdoTable