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

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

Поиск по несуществующему полю [D7, IB6.x]


dest81 ©   (2010-11-12 13:39:00) 

как можно реализировать в firebird запрос типа:
select col1,col1+50 as col2 from table1 where col2>100
пишет unknown column


dest81   (2010-11-12 15:18:00) [1]

пасибо поробую


Sergey13   (2010-11-12 15:01:00) [2]

> [5] Sergey13 ©   (12.11.10 14:58)

вернее
HAVING sum(t2.total)>20

нельзя ничего делать с псевдонимами полей.


Anatoly Podgoretsky   (2010-11-12 14:59:00) [3]

> dest81  (12.11.2010 14:52:04)  [4]

total_sum>20 надо перевести во Where


Sergey13   (2010-11-12 14:58:00) [4]

> [4] dest81   (12.11.10 14:52)

HAVING total_sum>20


dest81   (2010-11-12 14:52:00) [5]


> но если в лоб и в общем случае, то
>
> select col1,col1+50 as col2 from table1 where col1+50>100

я наверно неудачный пример привел, поробую по другому:
Есть две таблицы:
1. table1
  id integer,
  name varchar
2. table2
  id2 integer,
  id integer,
  total decimal(10,2)

такой запрос работает:
select t1.id,t1.name,sum(t2.total) as total_sum from table1 t1
left join table2 t2 on t1.id=t2.id group by .....

надо добавить фильтрацию по total_sum типа:
select t1.id,t1.name,sum(t2.total) as total_sum from table1 t1
left join table2 t2 on t1.id=t2.id and total_sum>20 group by .....

выдает unknown column, как это можно обойти?


Sergey13   (2010-11-12 14:39:00) [6]

Логически в данном случае конечно самое правильное
> [2] sniknik ©   (12.11.10 14:36)

но если в лоб и в общем случае, то

select col1,col1+50 as col2 from table1 where col1+50>100


sniknik   (2010-11-12 14:36:00) [7]

> select col1,col1+50 as col2 from table1 where col2>100
=
select col1,col1+50 as col2 from table1 where col1>50


Anatoly Podgoretsky   (2010-11-12 13:49:00) [8]

> dest81  (12.11.2010 13:39:00)  [0]

Но несуществующему полю выдает несуществующие значения
SELECT Col1,NULL from table1


Наверх

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