aşağıdaki sp ve trigger bir stok tablosundaki fiyatları güncellemek üzere yazılmıştır.
ürünün 4 girişfiyatı ve 4 satışfiyatı vardır.
yapmak istediğim şey yeni bir gelişfiyatı veya satışfiyatı girildiğinde
eğer yeni fiyat eski birinci fiyattan farklı ise üçüncü fiyatı 4.,
2. fiyatı 3., 1. fiyatı 2., ve yeni fiyatı da birinci fiyat yapması.
yani fiyatları güncel tutmak için fifo yapısı.
kod şöyle ama hata veriyor. acaba bir syntax hatası mı yapıyorum?
Kod: Tümünü seç
CREATE PROCEDURE FIYATGUNCELLE (
YENIGFIYAT NUMERIC(6,2),
YENISFIYAT NUMERIC(6,2),
AKTIFSTOKNO INTEGER,
ESKIGFIYAT NUMERIC(6,2),
ESKISFIYAT NUMERIC(6,2))
AS
begin
if (:YENIGFIYAT<>:ESKIGFIYAT)then
UPDATE stokkart SET
GELISFIYAT4 = GELISFIYAT3,
GELISFIYAT3 = GELISFIYAT2,
GELISFIYAT2 = GELISFIYAT1,
GELISFIYAT1 = :YENIGFIYAT where
STOKNO = :AKTIFSTOKNO;
if (:YENISFIYAT<>:ESKISFIYAT)then
UPDATE stokkart SET
SATISFIYAT4 = SATISFIYAT3,
SATISFIYAT3 = SATISFIYAT2,
SATISFIYAT2 = SATISFIYAT1,
SATISFIYAT1 = :YENIGFIYAT where
STOKNO = :AKTIFSTOKNO;
suspend;
end
Kod: Tümünü seç
CREATE TRIGGER STOKKART_BIU0 FOR STOKKART
ACTIVE BEFORE UPDATE POSITION 0
AS
begin
execute procedure fiyatguncelle NEW.gelisfiyat1, NEW.satisfiyat1, new.stokno, OLD.gelisfiyat1, OLD.satisfiyat1;
end