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

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

Проблемы с запросом [D7, IB6.x]


BanderLog ©   (2004-02-26 08:38:00) 

Привет Мастерам, научите неграмотных, делаю запрос
select Distinct Files.Alarm_File,
       (select Last_Name from People where ID_People = Files.ID_Create) as UCreate from Files
     where UCreate like '%фамиль%'

В итоге ругается что поле UCreate не известно.... подскажите как мне по этому полю отсортировать?


BanderLog   (2004-02-26 11:51:00) [1]

Все розобрался, пасибы за помощь, был и с моей стороны косяк. :)
Хоят '%%' - произвольное значение. :)
Но итоговый вопрос все же есть - значит алиас поля нельзя указывать в фильтре?


Johnmen   (2004-02-26 11:51:00) [2]

Загадки....
Попробуй CONTAINING


BanderLog   (2004-02-26 11:47:00) [3]

Вообщето это означет произвольные значения (проверено). :)
К тому же если хоть что то указываю например '%а%' тоже самое, хотя фамилии с "а" есть. :)


Johnmen   (2004-02-26 11:31:00) [4]

Читай здесь
http://www.ibase.ru/devinfo/ibrusfaq.htm
и рядом...

>like '%%'

Т.е. нет записей, в которых значение содержит ''
:)


BanderLog   (2004-02-26 11:13:00) [5]

В принципе заработало, но тока без условия where если добавляешь его, то возвращет пустой набор :( Даже если указать where P1.Last_Name like '%%'


Johnmen   (2004-02-26 10:53:00) [6]

Примерно так
select Distinct Files.Alarm_File, P1.Last_Name, P2.Last_Name
from Files
left join People P1 on P1.ID_People = Files.ID_Create
left join People P2 on P2.ID_People = Files.ID_Adjustment
where P1.Last_Name like '%фамиль%'
order by 2


BanderLog   (2004-02-26 10:43:00) [7]

Все бы ничего, тока вот таких вложеных селектов у меня 3 и отбирать надо в зависимости от условия по одному из них, но в выборке есть все 3. :(

Примерно так:
select Distinct Files.Alarm_File,
      (select Last_Name from People where ID_People = Files.ID_Create) as UCreate,
      (select Last_Name from People where ID_People = Files.ID_Adjustment) as UAdjustment from Files
    where UCreate like '%фамиль%'


Johnmen   (2004-02-26 09:08:00) [8]

select Distinct Files.Alarm_File, People.Last_Name
from Files
join People on People.I_People = Files.ID_Create
where People.Last_Name like '%фамиль%'
order by 2


Наверх

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