[ MarkoBalkan @ 08.10.2010. 21:53 ] @
evo da pomognem početnicima.nadam se da je sve jasno, ako nešto nije, pitajte.

Code:

CREATE TABLE PROIZVODI (
  ID INTEGER,
  PROIZVOD VARCHAR(20) CHARACTER SET NONE COLLATE NONE,
  CIJENA DECIMAL(12, 2));


CREATE TABLE RACUN (
  ID INTEGER,
  PROIZVODI_ID INTEGER,
  KOLICINA DECIMAL(12, 2),
  UKUPNO DECIMAL(12, 2));

CREATE TABLE PORACUNU (
  ID INTEGER,
  UKUPNO DECIMAL(12, 2));

CREATE TABLE POPROIZVODU (
  ID INTEGER,
  KOLICINA DECIMAL(12, 2),
  UKUPNO DECIMAL(12, 2));


trigeri

Code:


CREATE TRIGGER ukupno FOR RACUN
ACTIVE BEFORE INSERT
POSITION 0
AS
BEGIN
NEW.UKUPNO=NEW.KOLICINA*(SELECT CIJENA FROM proizvodi where proizvodi.id=new.proizvodi_id);    
END;

CREATE TRIGGER ukupno_po_racunu FOR RACUN
ACTIVE AFTER INSERT
POSITION 0
AS
DECLARE VARIABLE I INTEGER;
BEGIN

            
               select count(*)  from racun where racun.ID=new.id into :i;
              if (i=1) then 
                BEGIN
                insert into poracunu(ID,Ukupno) values(NEW.ID,0);
                update poracunu set Ukupno=Ukupno+new.Ukupno where ID=NEW.ID;
                END
                 else
                begin
                update poracunu set Ukupno=Ukupno+new.Ukupno where ID=NEW.ID;
               end
               
               
               
END;



CREATE TRIGGER ukupno_po_proizvodu FOR RACUN
ACTIVE AFTER INSERT
POSITION 0
AS
DECLARE VARIABLE I INTEGER;
BEGIN
    select count(*) from racun where proizvodi_id=new.proizvodi_id into i;
            if (i=1) then 
                BEGIN
                insert into poproizvodu(ID,kolicina,ukupno) values(NEW.proizvodi_id,0,0);
                update POPROIZVODU set kolicina=kolicina+new.kolicina, ukupno=ukupno+new.ukupno  where ID=NEW.proizvodi_id;
                END
                 else
                begin
                update poproizvodu set kolicina=kolicina+new.kolicina,ukupno=ukupno+new.ukupno where ID=NEW.proizvodi_id;
               end
END;