select sql runtime error | |
---|---|
glaz58 Автор Сообщений: 812 Откуда: Воронеж Дата регистрации: 09.02.2008 |
Уважаемые знатоки! Понадобилось расширить работающую SQL-команду. Раньше команда была такая:
Наверно в Select SQL нельзя в строке применять вычисления? |
Re: select sql runtime error | |
---|---|
ssa Сообщений: 12999 Откуда: Москва Дата регистрации: 23.03.2005 |
Вот интересно, как исходя из сообщения о неправильном Group by делается вывод о недопустимости вычислений? По какой логике? А ничего, что Вы добавили простое поле в запрос с группировкой? Как сие поле в группировке обрабатывать Вы не пробовали указать? ------------------ Лень - это неосознанная мудрость. Исправлено 1 раз(а). Последнее : ssa, 06.11.20 20:03 |
Re: select sql runtime error | |
---|---|
Владимир Максимов Сообщений: 14094 Откуда: Москва Дата регистрации: 02.09.2000 |
Ну, я понимаю, что писать надо так, чтобы враги не догадались, что вообще написано. Но сам-то как такой код читаешь?
В случае использования группировки в опции Select могут быть указаны поля, перечисленные в Group By. Все остальные поля должны быть внутри аггрегирующих функций таких как SUM(), MAX(), MIN() Последнее вычисляемое поле - не соответствует этому правилу. Если Вы считаете, что это вычисляемое значение одинаково для любых записей в рамках группы, то используйте MAX()
|
Re: select sql runtime error | |
---|---|
Sawradym Сообщений: 2244 Откуда: Винница Дата регистрации: 15.05.2007 |
Настройка SET ENGINEBEHAVIOR 80 позволит работать Вашему коду, но лучше сразу учиться писать правильно.
Исправлено 1 раз(а). Последнее : Sawradym, 06.11.20 20:17 |
Re: select sql runtime error | |
---|---|
ssa Сообщений: 12999 Откуда: Москва Дата регистрации: 23.03.2005 |
А для повышения читабельности запроса я бы сделал примерно так:
------------------ Лень - это неосознанная мудрость. |
Re: select sql runtime error | |
---|---|
glaz58 Автор Сообщений: 812 Откуда: Воронеж Дата регистрации: 09.02.2008 |
Это не помогло.
|
Re: select sql runtime error | |
---|---|
glaz58 Автор Сообщений: 812 Откуда: Воронеж Дата регистрации: 09.02.2008 |
Спасибо за очень точный и бережный к коду ответ (в том смысле, что просто указано на ошибку без изменений). Мне просто надо было применить SUM по аналогии с другим вычисляемым полем и всё заработало. И дополнительный вопрос по SQL: почему к первому полю (smetarab.nrazd) не применено никаких агрегирующих функций, но это не вызывает ошибки?
Исправлено 1 раз(а). Последнее : glaz58, 06.11.20 20:50 |
Re: select sql runtime error | |
---|---|
glaz58 Автор Сообщений: 812 Откуда: Воронеж Дата регистрации: 09.02.2008 |
Спасибо за внимание к моей просьбе, но у Вас слишком сложные для меня изменения моего кода.
|
Re: select sql runtime error | |
---|---|
Владимир Максимов Сообщений: 14094 Откуда: Москва Дата регистрации: 02.09.2000 |
По той причине, что это именно то поле, которое указано в опции Group By. Нет неоднозначности в определении его значения в результирующей выборке |
Re: select sql runtime error | |
---|---|
Sawradym Сообщений: 2244 Откуда: Винница Дата регистрации: 15.05.2007 |
Склероз подвел. Прошу прощения. Имелось ввиду SET ENGINEBEHAVIOR 70. ------------------ |
Re: select sql runtime error | |
---|---|
ssa Сообщений: 12999 Откуда: Москва Дата регистрации: 23.03.2005 |
Сложные? Ну ладно, второй вариант, а в первом то что сложного если всего лишь из исходного кода удалена куча лишнего текста? Присмотритесь получше, это тот же Ваш код, только причесанный. ------------------ Лень - это неосознанная мудрость. |
Re: select sql runtime error | |
---|---|
glaz58 Автор Сообщений: 812 Откуда: Воронеж Дата регистрации: 09.02.2008 |
У меня конкретная ошибка в определении вычисляемого поля, поэтому SET ENGINEBEHAVIOR тут ни причём. Наиболее точно ответил Владимир Максимов, просто ткнул пальцем в нужное место, ничего не изменяя.
|
Re: select sql runtime error | |
---|---|
glaz58 Автор Сообщений: 812 Откуда: Воронеж Дата регистрации: 09.02.2008 |
Я действительно благодарен Вам за внимание к моему вопросу, для меня лучше всего ответил Владимир Максимов. Он просто ткнул пальцем в конкретное место в тексте, ничего в нём не меняя. Я просто не использую такие слова, как "inner", "join", потому что пока не изучил их назначения. Обходился без них.
Исправлено 1 раз(а). Последнее : glaz58, 07.11.20 12:42 |
Re: select sql runtime error | |
---|---|
ssa Сообщений: 12999 Откуда: Москва Дата регистрации: 23.03.2005 |
А где Вы их обнаружили в первом варианте? Или еще не поняли, что я привел 2 варианта запроса? ------------------ Лень - это неосознанная мудрость. |
Re: select sql runtime error | |
---|---|
glaz58 Автор Сообщений: 812 Откуда: Воронеж Дата регистрации: 09.02.2008 |
В первом варианте мне показалось избыточным добавление "from smetarab as s, razdel as r ;". В любом случае, спасибо, я уже принял вариант, который меня устраивает, который соответствует моим навыкам.
Исправлено 1 раз(а). Последнее : glaz58, 07.11.20 13:27 |
© 2000-2024 Fox Club  |