![]() |
![]() |
Правила Форума редакция от 22.06.2020 |
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
Опции темы | Опции просмотра |
![]() |
![]() |
![]() |
Неактивный пользователь
Пол: ![]() Регистрация: 08.01.2008
Сообщений: 14
Репутация: 0
|
![]() Трудность заключается в том, что необходимо считать сумму десятичных значений двух ячеек в строке и записывать результат в третью.
Тип полей, к сожалению VARCHAR!!! Изменить просто так не удается, может есть способ? Написал вот такой триггер: Код:
CREATE trigger sum5v for ssvch active after insert or update position 0 AS declare variable s float; declare variable s1 float; begin select "5PRM","5PRM2" from ssvch where "5PRM" = new."5PRM" into :s, :s1 ; if ((NEW."5PRM" is not null) and ((old."5PRM" is null) or (NEW."5PRM" <> OLD."5PRM"))) then begin update ssvch set "5VSUM" = :s + :s1 where "5VSUM" = old."5VSUM"; end end |
![]() |
![]() ![]() |
Реклама: | DHI-NVR5208-EI | ленинград хабаровск | салфетка в аренду | плохая девочка николь кидман смотреть | Тепловая завеса Тепломаш КЭВ-29П2121W |
![]() |
![]() |
Постоялец
![]() ![]() Пол: ![]() Регистрация: 13.03.2008
Адрес: Минск
Сообщений: 257
Репутация: 231
|
![]() Может третье поле сделать вычисляемым? COMPUTED BY?
__________________
![]() |
![]() |
![]() ![]() |
![]() |
![]() |
![]() Типы приводить не пробовали?
|
|
![]() |
![]() ![]() |
![]() |
![]() |
Неактивный пользователь
Пол: ![]() Регистрация: 08.01.2008
Сообщений: 14
Репутация: 0
|
![]() to Vasuha
К сожалению все поля заполнены данными. COMPUTED BY не подойдет. Приведение к типу не пробовал, но думаю не прокатит по той же причине. P.S. Вставьте код... если это возможно. |
![]() |
![]() ![]() |
![]() |
![]() |
Пользователь
Пол: ![]() Регистрация: 11.03.2008
Сообщений: 158
Репутация: 33
|
![]() >К сожалению все поля заполнены данными. COMPUTED BY не подойдет.
Поясни плиз... |
![]() |
![]() ![]() |
![]() |
![]() |
Новичок
![]() Пол: ![]() Регистрация: 03.03.2009
Сообщений: 16
Репутация: 1
|
![]() и правильно делает, что не хочет считать!
![]() Код:
select "5PRM","5PRM2" from ssvch where "5PRM" = new."5PRM" Код:
select OLD.5PRM, OLD.5PRM2 from ssvch where OLD.5PRM = new.5PRM Код:
IF NEW."5PRM" <> OLD."5PRM" ![]() ![]() и ваще, зачем так всё сложно? Код:
CREATE trigger sum5v for ssvch active after insert or update position 0 AS declare variable s float; declare variable s1 float; begin s = CAST(NEW.5PRM AS float); /*можно пробовать и без CAST*/ s1 = CAST(NEW.5PRM2 AS float); NEW.5VSUM = :s + :s2; end Код:
begin NEW.5VSUM = NEW.5PRM + NEW.5PRM2; end |
![]() |
![]() ![]() |
![]() |
Опции темы | |
Опции просмотра | |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
FIBPlus (работа с Firebird) | AlexanderP | Компоненты | 143 | 20.12.2022 09:35 |
БД Firebird | Greg777 | Delphi | 61 | 26.03.2015 00:01 |
Обновление FireBird | biksant | Базы данных | 15 | 13.04.2010 06:56 |
Помогите пожалуйста с Firebird | vng23 | Базы данных | 3 | 17.02.2010 06:51 |
FireBird 2.0.3 | Mustd1e | Базы данных | 5 | 10.01.2010 23:02 |
|
|