SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 07.05.2011 19:39:05

denndot
Участник
Зарегистрирован: 07.05.2011
Сообщений: 1

Создание триггера для вычисления суммы в interbase

Есть 2 таблицы:

CREATE TABLE NAKLADNAYA
(
  NAKL_ID Integer,
  DATA_NAKL Date,
  SUMA_NAKL decimal(7,2),
  PRIMARY KEY (NAKL_ID),
);


CREATE TABLE TOVARY_IN_NAKL
(
  NAKL_KOD Integer,
  TOV_KOD Integer,
  KOLICHESTVO Integer,
  PRICE decimal(7,2),
FOREIGN KEY (NAKL_KOD) REFERENCES NAKLADNAYA (NAKL_ID),
FOREIGN KEY (TOV_KOD) REFERENCES TOVAR (TOV_ID)
);

Нужно сделать так, чтобы в таблице NAKLADNAYA в поле SUMA_NAKL было установленно значение, которое бы являлось произвидением полей из таблицы TOVARY_IN_NAKL, а именно KOLICHESTVO*PRICE и сгрупировано по полю NAKL_KOD. Или простым языком чтобы SUMA_NAKL равнялась сумме стоимостей всех товаров входящих в отдельную накладную.
Препод посоветовал использовать триггер. После длительных поисков по просторам РуНета, ничего стоящего, что могло мне помочь, не нашел..(
Написал, что-то очень карявое, похожее на триггер:

SET TERM !! ;
CREATE TRIGGER "Vfhh" for TOVARY_IN_NAKL
ACTIVE AFTER INSERT POSITION 0
AS

BEGIN
UPDATE  NAKLADNAYA
SET SUMA_NAKL = (SELECT (KOLICHESTVO*PRICE) FROM TOVARY_IN_NAKL GROUP BY TOV_KOD)
WHERE NAKL_ID = NAKL_KOD;

END !!
SET TERM ; !!

Конечно же это не работает... Прошу Вас помочь мне в написании этого вычисляемого поля с помошью триггера или чего-то может другого. Прошу вылаживать код...

Неактивен

 

#2 12.05.2011 21:52:55

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Создание триггера для вычисления суммы в interbase

Кажется, простой UPDATE в том виде, что у Вас написан, должен работать.
На что ругается?

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson