Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2010, 14:04   #1
Lait1989
Новичок
Джуниор
 
Регистрация: 12.04.2010
Сообщений: 2
Печаль Триггер для Firebird

Помогите написать триггер, при добавлении новой записи в таблицу Expense.
Когда появляется новый расход сотрудником, его нужно вычесть из норм расходов в месяц на один отдел из таблицы Norms_of_expenses, а затем добавить остаток в таблицу Rests.
Вот мои наработки

CREATE OR ALTER TRIGGER EXPENSE_DEP_REST FOR EXPENSE
ACTIVE BEFORE INSERT POSITION 0
AS
declare variable ki integer;
declare variable nor decimal(8,3);
declare variable ns decimal(8,3);
declare variable nm integer;
declare variable ny integer;
declare variable dep integer;
declare variable r decimal(8,3);
begin
if (new.nsum <>0) then
begin
SELECT e.kinds_id,norm, nsum,nmonth,nyear,d.department_id
FROM expense e,norms_of_expenses n, employee em, department d
where e.kinds_id = n.kinds_id
and extract(month from e.ndate)=n.nmonth
and extract (year from e.ndate)=n.nyear
and e.employee_id=em.employee_id
and em.department_id=d.department_id
and em.department_id=n.department_id
into :ki,nor,ns,nm,ny,dep;
r=nor-ns;
begin
insert into rests (nmonth,nyear,rest_by_norms,kinds_i d,department_id)
values (':nm',
':ny',
':r',
':ki',
'ep');
end
end
end
триггер запускается, но требуемые операции не выполняются
Lait1989 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хранимая процедура для Firebird Lait1989 БД в Delphi 1 15.05.2010 11:02
DAC компоненты для Interbase(FireBird) codekick БД в Delphi 1 21.01.2010 19:34
Какие компоненты используете для работы с firebird ? Alar БД в Delphi 3 15.10.2009 12:18
Как получить ID для новой записи с использованием триггеров?(Firebird) Paul Hindenburg БД в Delphi 20 01.06.2008 16:39
Триггер? yulia БД в Delphi 9 12.05.2007 15:03