![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Interbase обозвал union как Invalid token (( [D7, IB6.x]
overword © (2004-03-18 16:40:00)Помогите пожалуйста, мастера!
Надо сделать запрос из групп и подгрупп (отделы и персонал). В BDE делал запросто, а IB меня вежливо послал - говорит, Invalid token. Без UNION все работает по отдельности.
Что не так?
Вот текст запроса:
select 1 GRP, departments.DEP_ID, departments.DEP_NAME
from departments
union
select 0, personnel.DEP_ID, personnel.P_NAME
from personnel
order by DEP_ID, GRP desc
overword (2004-03-19 13:36:00) [1]Понял, спасибо!
Desdechado (2004-03-19 12:29:00) [2]поставь CAST( 1 AS INTEGER )
Johnmen (2004-03-19 09:54:00) [3]>overword
Тогда в [8] ошибок нет !
overword (2004-03-19 09:44:00) [4]Тоже совпадают, оба INTEGER...
Johnmen (2004-03-19 09:41:00) [5]Тогда не совпадают departments.DEP_ID и personnel.DEP_ID.
Других причин нет. Или не видно из-за недостатка входной инфы.
overword (2004-03-19 09:36:00) [6]2 Johnmen
Совпадают! Оба - CHAR(24)...
Johnmen (2004-03-19 09:30:00) [7]Типы полей в соотв. селектах должны полностью совпадать !
departments.DEP_NAME и personnel.P_NAME не совпадают...
overword (2004-03-19 08:22:00) [8]Прошу извинить за ошибку, вот запрос:
select 1, departments.DEP_ID, departments.DEP_NAME
from departments
union
select 0, personnel.DEP_ID, personnel.P_NAME
from personnel
и сообщение об ошибке:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Invalid command.
Data type unknown.
overword (2004-03-19 08:00:00) [9]Конкретный запрос:
select 1 GRP, departments.DEP_ID, departments.DEP_NAME
from departments
union
select 0, personnel.DEP_ID, personnel.P_NAME
from personnel
Конкретная ошибка:
select 1 GRP, departments.DEP_ID, departments.DEP_NAME
from departments
union
select 0, personnel.DEP_ID, personnel.P_NAME
from personnel
Desdechado (2004-03-18 19:14:00) [10]знаю, что в подзапросах UNION не канает
может, это твой случай?
Johnmen (2004-03-18 17:09:00) [11]Приведи полностью сообщение об ошибке.
И кстати, при юнионе без ALL все и так будет отсортировано. Просто укажи др.последовательность полей в селекте...
Соловьев (2004-03-18 17:08:00) [12]А так?
select 1 as GRP, departments.DEP_ID, departments.DEP_NAME
from departments
union
select 0 as GRP, personnel.DEP_ID, personnel.P_NAME
from personnel
overword (2004-03-18 16:53:00) [13]Да ORDER вообще можно убрать! Он без него ругается ((
Johnmen (2004-03-18 16:47:00) [14]order by 2, 1 desc
HSolo (2004-03-18 16:47:00) [15]order by 2, 1 desc