-
как можно реализировать в firebird запрос типа: select col1,col1+50 as col2 from table1 where col2>100 пишет unknown column
-
> dest81 (12.11.2010 13:39:00) [0]
Но несуществующему полю выдает несуществующие значения SELECT Col1,NULL from table1
-
> select col1,col1+50 as col2 from table1 where col2>100 = select col1,col1+50 as col2 from table1 where col1>50
-
Логически в данном случае конечно самое правильное > [2] sniknik © (12.11.10 14:36)
но если в лоб и в общем случае, то
select col1,col1+50 as col2 from table1 where col1+50>100
-
> но если в лоб и в общем случае, то > > 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, как это можно обойти?
-
> [4] dest81 (12.11.10 14:52)
HAVING total_sum>20
-
> dest81 (12.11.2010 14:52:04) [4]
total_sum>20 надо перевести во Where
-
> [5] Sergey13 © (12.11.10 14:58)
вернее HAVING sum(t2.total)>20
нельзя ничего делать с псевдонимами полей.
-
пасибо поробую
|