Конференция "Базы" » Поиск по несуществующему полю [D7, IB6.x]
 
  • dest81 (12.11.10 13:39) [0]
    как можно реализировать в firebird запрос типа:
    select col1,col1+50 as col2 from table1 where col2>100
    пишет unknown column
  • Anatoly Podgoretsky © (12.11.10 13:49) [1]
    > dest81  (12.11.2010 13:39:00)  [0]

    Но несуществующему полю выдает несуществующие значения
    SELECT Col1,NULL from table1
  • sniknik © (12.11.10 14:36) [2]
    > select col1,col1+50 as col2 from table1 where col2>100
    =
    select col1,col1+50 as col2 from table1 where col1>50
  • Sergey13 © (12.11.10 14:39) [3]
    Логически в данном случае конечно самое правильное
    > [2] sniknik ©   (12.11.10 14:36)

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

    select col1,col1+50 as col2 from table1 where col1+50>100
  • dest81 (12.11.10 14:52) [4]

    > но если в лоб и в общем случае, то
    >
    > 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 © (12.11.10 14:58) [5]
    > [4] dest81   (12.11.10 14:52)

    HAVING total_sum>20
  • Anatoly Podgoretsky © (12.11.10 14:59) [6]
    > dest81  (12.11.2010 14:52:04)  [4]

    total_sum>20 надо перевести во Where
  • Sergey13 © (12.11.10 15:01) [7]
    > [5] Sergey13 ©   (12.11.10 14:58)

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

    нельзя ничего делать с псевдонимами полей.
  • dest81 (12.11.10 15:18) [8]
    пасибо поробую
 
Конференция "Базы" » Поиск по несуществующему полю [D7, IB6.x]
Есть новые Нет новых   [134431   +16][b:0][p:0]