Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.05.26;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
4-83825
kpv-10k
2003-03-19 21:05
2003.05.26
Заголовок активного окна...


14-83746
dataMaster
2003-05-07 15:50
2003.05.26
Сказочка


14-83731
voland0
2003-05-07 09:26
2003.05.26
Переход с 4 версии Delphi на 7 - ю


14-83743
ZeroDivide
2003-05-05 08:43
2003.05.26
ASM


3-83349
StillBird
2003-05-05 18:05
2003.05.26
Как передать имя базы данных как параметр процедуры ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский