Конференция "Базы" » Параметр в вычисляемом поле [FB21]
 
  • Евгений Р. (21.07.09 22:22) [0]
    в формуле вычисляемого поля должен быть SQL запрос. В качестве параметра выступает поле этой же таблицы. Следующая запись:


    COMPUTED BY ((
     select sum(suma)
     from OplLp o
     where o.idfLp=:idfLp
    ))



    выдает ошибку:
    SQL error code = -206.
    Column unknown.
    IDFLP.

    хотя поле IdfLp есть в этой таблице
    как правильно записать?
  • sniknik © (21.07.09 22:30) [1]
    а почему запись как параметр, если это поле той же таблицы? поле должно быть полем, по любому т.е. что то вроде o.idfLp=a.idfLp. если вообще такая запись в FB позволяется (с запросом в вычисляемом поле имею ввиду).
  • turbouser © (21.07.09 22:30) [2]

    COMPUTED BY ((
    select sum(suma)
    from OplLp
    where OplLp.idfLp=эта_таблица.idfLp
    ))

  • Евгений Р. (21.07.09 22:42) [3]

    > turbouser ©   (21.07.09 22:30) [2]


    спасибо, получилось
    а нельзя ли вместо эта_таблица использовать короткий псевдоним?
  • turbouser © (21.07.09 22:52) [4]

    > Евгений Р.   (21.07.09 22:42) [3]


    > использовать короткий псевдоним?


    А откуда он возьмется?
    Это, по сути, просто запрос..
    Разве будет работать такое:
    select sum(suma)
    from эта_таблица, OplLp o
    where o.idfLp=x.idfLp


    ?
  • Евгений Р. (21.07.09 22:56) [5]
    полностью согласен, но надеялся на что-то зарезервированное типа "Self"
  • StriderMan (22.07.09 16:31) [6]
    сдается мне что COMPUTED BY тут вообще лишнее, достаточно просто (SELECT ..) . Или я чего-то не догоняю?
  • topS (23.07.09 09:13) [7]

    > Евгений Р.   (21.07.09 22:22) 

    можно поинтересоваться каков вообще смысл в данном поле?
  • Евгений Р. (24.07.09 00:11) [8]

    > topS   (23.07.09 09:13) [7]


    Итоговое поле по строкам документа


    > StriderMan   (22.07.09 16:31) [6]


    сдается мне что COMPUTED BY тут вообще лишнее в SQL всегда можно обходиться вычислениями в Select. Но когда такие вычисления часты я  предпочитаю использовать COMPUTED BY
  • StriderMan (24.07.09 12:46) [9]

    > Но когда такие вычисления часты я  предпочитаю использовать COMPUTED BY

    он что-то дает с точки зрения скорости? или можно индекс по нему состряпать? никогда не пользовался, интересно.
  • makz (24.07.09 13:26) [10]

    > он что-то дает с точки зрения скорости? или можно индекс
    > по нему состряпать?

    Ни то, ни другое. Единственно что удобно иногда: select на клиенте проще выглядит :).
  • topS (24.07.09 16:08) [11]

    > Евгений Р.   (24.07.09 00:11) [8]
    > Итоговое поле по строкам документа

    с какой стати таблица бд должна знать про какой-то там документ?
  • Евгений Р. (24.07.09 16:45) [12]

    > topS   (24.07.09 16:08) [11]


    прочитайте внимательно свой вопрос [7]. А сообщаю я таблице о ее строках запросом в формуле, которому посвящена данная ветвь. Разобрались?
  • topS (24.07.09 18:27) [13]

    > Евгений Р.   (24.07.09 16:45) [12]

    так в чем же сакральный смысл описанного вычисляемого поля?
    может все же ответите? конкретно?

    > А сообщаю я таблице о ее строках запросом в формуле,

    а что таблица не знает про свои собственные строки?
  • turbouser___ (24.07.09 18:40) [14]

    > topS   (24.07.09 18:27) [13]


    > так в чем же

    Тебе уже ответили в [8]

    > а что таблица не знает

    Не знает.

    Хватит троллить.
  • topS (24.07.09 19:21) [15]
    Удалено модератором
  • turbouser © (24.07.09 20:02) [16]
    я совсем забыл правило - "не кормите троллей" :)
  • topS (24.07.09 20:35) [17]

    > я совсем забыл правило - "не кормите троллей" :)

    и еще одно - не плодить ников
    впрочем для неадекватного юзера это нормально
 
Конференция "Базы" » Параметр в вычисляемом поле [FB21]
Есть новые Нет новых   [134473   +33][b:0][p:0.001]