Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / group by ошибка / 12 сообщений из 12, страница 1 из 1
07.07.2014, 18:16
    #38689697
Ralno
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
group by ошибка
Здравствуйте, помогите понять в чем ошибка
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT rar."AmountRestID" as id, rar."Date", rar."DocTypeID", rar."PartnerID",  amount."Name" as amount,sum(rar."Rest"),
dcp."PartnersGrpID", dcp."Name" AS dcpName
FROM "rgAmountRests" rAR 
LEFT JOIN "dcPartners" dcP ON(rAR."PartnerID"=dcP."PartnerID") 
left join "dcCards" dc ON(dc."CardID"=rar."CardID") 
left join "dcAmounts" amount ON(amount."AmountID"=rar."AmountID")
WHERE (rar."DocTypeID"='5' or rar."DocTypeID"='6')
group by rar."PartnerID", amount."Name"



и даже если я хочу полностью сумму поля по всем строкам, то есть без группировки также выдает следующее
Error: *** IBPP::SQLException ***
Context: Statement::Prepare( SELECT rar."AmountRestID" as id, rar."Date", rar."DocTypeID", rar."PartnerID", amount."Name" as amount,sum(rar."Rest"),
dcp."PartnersGrpID", dcp."Name" AS dcpNAme
FROM "rgAmountRests" rAR
LEFT JOIN "dcPartners" dcP ON(rAR."PartnerID"=dcP."PartnerID")
left join "dcCards" dc ON(dc."CardID"=rar."CardID")
left join "dcAmounts" amount ON(amount."AmountID"=rar."AmountID")
WHERE (rar."DocTypeID"='5' or rar."DocTypeID"='6')
group by rar."PartnerID", amount."Name" )
Message: isc_dsql_prepare failed

SQL Message : -104
Invalid token

Engine Code : 335544569
Engine Message :
Dynamic SQL Error
SQL error code = -104
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause)

как я понимаю он ФБ ругается на отсутствие поля группировки?
...
Рейтинг: 0 / 0
07.07.2014, 18:23
    #38689704
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
group by ошибка
Ralno> Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause)

Гуглить по тексту этой ошибки не пробовал?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
07.07.2014, 22:17
    #38689843
roadster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
group by ошибка
...
Рейтинг: 0 / 0
08.07.2014, 11:08
    #38690147
Ralno
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
group by ошибка
2 roadster
Спасибо, повторение мать учения но тут как я понял в перекрестном запросе засада с одной таблице все работает,
как только участвует поле из другой таблице в запросе сразу все ошибка
Гаджимурадов Рустам Гуглить по тексту этой ошибки не пробовал?
Конечно пробовал, в ответ получил много интересного на многих языках
да и по форум искал и конкретно такой проблемы не нашел
...
Рейтинг: 0 / 0
08.07.2014, 11:53
    #38690207
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
group by ошибка
Ralno,

Рустам неверно выразился. Необходимо было начать с перевода текста ошибки.
...
Рейтинг: 0 / 0
08.07.2014, 12:26
    #38690271
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
group by ошибка
Ralnoда и по форум искал и конкретно такой проблемы не нашел
кривой запрос - это исключительно проблема написавшего такой запрос :-)
есть два варианта ответа
1. ошибочно написан group by вместо order by. Т.е. указана группировка вместо сортировки
2. group by пишется так:

select field1, field2, aggrfunc(...)
group by field1, field2

то есть, группировать можно только по всем полям (а не по части) которые идут в select до агрегатной функции. Любая попытка написать в данном select
group by field1
group by field3
и т.п. выдаст именно эту ошибку.
...
Рейтинг: 0 / 0
08.07.2014, 12:28
    #38690273
roadster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
group by ошибка
kdvгруппировать можно только по всем полям (а не по части) которые идут в select до агрегатной функции.а ещё и после и даже по тем которых нет на выходе :)
...
Рейтинг: 0 / 0
08.07.2014, 12:52
    #38690317
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
group by ошибка
...
Рейтинг: 0 / 0
08.07.2014, 14:47
    #38690519
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
group by ошибка
Отчего же неверно, необязательно с перевода - для этого
переводчик открывать надо или английский знать, хотя
достаточно погуглить по тексту и обнаружить кучу таких
же вопросов с ответами типа "используй group by по всем
неагрегируемым полям, Люк!".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
08.07.2014, 14:51
    #38690525
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
group by ошибка
Гаджимурадов Рустам,

Когда лень, можно общий совет давать - читай SQL!
...
Рейтинг: 0 / 0
08.07.2014, 14:57
    #38690545
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
group by ошибка
Тогда уж "читай SQL.RU".
Или "читай книжки, доку".
Или "в поиск по форуму".
Или - что проще - "в гугл".
Что, собсно, я и сделал.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
08.07.2014, 16:32
    #38690785
Ralno
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
group by ошибка
Всем спасибо, таким как я новичкам посоветую не переделывать имеющийся запрос, а писать с нуля что хотим откуда взять и как можно меньше лишнего, group by очень чувствителен к повторяющимся полям и их надо указывать, по факту лишние поля в запросе по которым group и путался
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / group by ошибка / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]