[ 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; |