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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> UNION и ORDER BY, проблема с сортировкой в InterBase 
V
    Опции темы
Gamber
Дата 15.4.2008, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Есть вот такой вот запрос:
Код

SELECT name_product,unit,amount
FROM products,composition
WHERE composition.kod_product=products.kod_product AND amount>200
UNION
SELECT name_product,unit,amount
FROM products,composition
WHERE composition.kod_product=products.kod_product AND unit IN ('гр.')
ORDER BY unit;


При попытке исполнения получаю вот такую вот ошибку:
Код

Dynamic SQL Error
SQL error code = -104
Invalid command
invalid ORDER BY clause
Statement: 
SELECT name_product,unit,amount
FROM products,composition
WHERE composition.kod_product=products.kod_product AND amount>200
UNION
SELECT name_product,unit,amount
FROM products,composition
WHERE composition.kod_product=products.kod_product AND unit IN ('гр.')
ORDER BY unit


В итоге если убрать сортировку, все отлично работает...
Подскажите пожалуйста, как все-таки правильно использовать ORDER BY с комбинированным запросом...

Это сообщение отредактировал(а) Gamber - 15.4.2008, 14:15
PM MAIL   Вверх
Magnifico
Дата 15.4.2008, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

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



order by 2   (для  2 го поля unit)

Код

select 1 as a, 2 as b from rdb$database
union all
select 2 as a, 3 as b from rdb$database
order by  1 desc



--------------------
Всё  в  порядке   -   спасибо  зарядке  !
PM MAIL   Вверх
Gamber
Дата 15.4.2008, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Magnifico @ 15.4.2008,  14:39)
order by 2   (для  2 го поля unit)

Код

select 1 as a, 2 as b from rdb$database
union all
select 2 as a, 3 as b from rdb$database
order by  1 desc


Простите, а можно немножко по подробнее... Я Вас немного не понял...
PM MAIL   Вверх
skyboy
Дата 15.4.2008, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Цитата(Gamber @  15.4.2008,  13:47 Найти цитируемый пост)
Простите, а можно немножко по подробнее

вместо имени поля, которое в разных частях UNION может быть разным, используй номер поля
PM MAIL   Вверх
Gamber
Дата 15.4.2008, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



OK се понял спасибо...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




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


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

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