Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SQL: Union и Order By, Ошибка Union и Order By 
:(
    Опции темы
anton265
Дата 23.4.2011, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 4.12.2008

Репутация: нет
Всего: нет



Доброго времени суток!
Есть БД FireBird 2.5 (SQL Dialect 3)
Пытаюсь выполнить зарос


Код


select message.*,Sotr.F_S from message,sotr where message.ID_SOTR=Sotr.ID_SOTR and Message.Get CONTAINING 'Менеджеры' 
union select message.*,Sotr.F_S from message,sotr where message.ID_SOTR=Sotr.ID_SOTR  and Message.Get CONTAINING 'Филиал' 
Union select message.*,Sotr.F_S from message,sotr where message.ID_SOTR=Sotr.ID_SOTR and Message.Get CONTAINING 'Иванов' order by Message.ID_MES DESC


Выдается ошибка: 

Invalid token
Dynamic SQL Error
SQL Error code = -104
Invalid Command
invalid order BY clause

если убрать Order By запрос выполняется. Но очень  нужна сортировка. Кто знает в чем проблема? Подскажите пожалуйста

Это сообщение отредактировал(а) anton265 - 24.4.2011, 09:19
PM MAIL   Вверх
Vas
Дата 23.4.2011, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: нет
Всего: 28



Попробуй перечислить все поля вместо message.*


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
Akella
Дата 23.4.2011, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



При использовании Union все поля объединяемых наборов должны совпадать не только по количеству, но и по типам.

Добавлено через 1 минуту и 1 секунду
anton265, оформляй нормально свои вопросы. Используй кнопку КОД для оформления кода. Пожалуйста, отредактируй своё сообщение.

Добавлено через 2 минуты и 3 секунды
И order by нужно применять отдельно для каждого набора.

Добавлено через 3 минуты
И если есть возможность, то избегать CONTAINING, т.к. CONTAINING не использует индексы.
PM MAIL   Вверх
Vas
Дата 24.4.2011, 08:53 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: нет
Всего: 28



С Firebird не работаю, но что-то мне подсказывает что запрос можно переписать к виду
Код

select message.*,Sotr.F_S from message,sotr where message.ID_SOTR=Sotr.ID_SOTR and (Message.Get CONTAINING 'Менеджеры' 
OR Message.Get CONTAINING 'Филиал' 
OR Message.Get CONTAINING 'Иванов') 
order by Message.ID_MES DESC

или
Код

select message.*,Sotr.F_S from message,sotr where message.ID_SOTR=Sotr.ID_SOTR and (Message.Get LIKE '%Менеджеры%' 
OR  Message.Get LIKE '%Филиал%' 
OR  Message.Get LIKE '%Иванов%') 
order by Message.ID_MES DESC

Ну и не забываем конечно про регистр букв при сравнении.

Упс, скобки забыл

Это сообщение отредактировал(а) Vas - 24.4.2011, 08:55


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0462 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.