Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запрос отказывается работать? [D5, IB5.x, ]


Dim ©   (2002-01-18 12:28:00) 

Добрый день коллеги. Набросал запрос для получения набора данных из БД InterBase 5.5:
SELECT DISTINCT c.change_id as id, c.change_pairnum as pair,
c.change_date as data,
g.group_name as groups,

(h.h_surname||" "||SUBSTR(h.h_name,1,1)||". "||
SUBSTR(h.h_patronymic,1,1)||". ") as prep,
l.name as less,

hi.h_surname||" "||SUBSTR(hi.h_name,1,1)||". "||
SUBSTR(hi.h_patronymic,1,1)||". ") as prepin,
li.name as lessin

FROM ep_change c, dean_groups g, dean_lesson l, dean_lesson li,
ok_human h, ok_human hi

WHERE c.change_group=g.group_id and
c.change_date="14.01.2002" and
c.change_lessonout=l.id and
c.change_teacherout=h.h_id and
(c.change_lessonin=li.id) and
(c.change_teacherin=hi.h_id)
UNION
SELECT c.change_id as id,
c.change_pairnum as pair, c.change_date as data,
g.group_name as groups,
h.h_surname||" "||SUBSTR(h.h_name,1,1)||". "||
SUBSTR(h.h_patronymic,1,1)||". " as prep,
l.name as less,
"нет" as prepin,
"нет" as lessin

FROM ep_change c, dean_groups g, dean_lesson l,
ok_human h, ok_human hi

WHERE c.change_group=g.group_id and
c.change_date="14.01.2002" and
c.change_lessonout=l.id and

c.change_teacherout=h.h_id and
c.change_lessonin=0 and

c.change_teacherin=0
Вроде бы запрос как запрос, но что странно, все это вместе не работает, а по отдельности оба Select"а работают и выдают то что надо. Если запустить как есть то вылетает ошибка типа
"General SQL Error
Invalid command
Data type unknown". Если не сильно затруднит, то подскажите как с этим справиться.
Заранее благодарю за помощь.Дмитрий.


Dim   (2002-01-18 13:12:00) [1]

Большое спасибо, все получилось.
Удачи и процветания.Дмитрий


Awex   (2002-01-18 12:43:00) [2]

В первом запросе постледний столбец - li.name as lessin
В последнем запросе постледний столбец - "нет" as lessin
попробуй так:
если допустим li.name у тебя VARCHAR(127)
то "нет" as lessin долно выглядеть примерно так CAST("нет" AS VARCHAR(127)) as lessin
Ну и просмотри остальные столбцы на коректность типов, если есть какие то сомнения приводи к определенному типу лучше явно.




Наверх

Титульная страница Поиск, карта сайта Написать письмо