SP ile 2 alanın farkını alıp üçüncüye yazdırmak

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

SP ile 2 alanın farkını alıp üçüncüye yazdırmak

Mesaj gönderen bobasturk »

merhaba ustalarım,

hazırladığım bi çalışmada sp ler ile işleri veri tabanı tarafında yaptırmak istiyorum ve hepsini yaptırdım sadece şu durum kaldı. Fb/ib kullanıyorum.

kasadurum tablomda
dönemi
gelir
gider
fark
alanları mevcut. bu gelir ve gider alanlarına sp ler ile kasagelir ve kasagider tablolarından veriler toplanıyor. burada fark kısmına sp ile gelir ve gider farkını yazmasını istiyorum.
sp şöyle

Kod: Tümünü seç

CREATE PROCEDURE SPI_KASADURUM (
    DONEMI VARCHAR(10),
    GELIR FLOAT,
    GIDER FLOAT,
    FARK FLOAT)
AS
DECLARE VARIABLE DLR_KAYIT_SAYISI INTEGER;
begin 
  select count(*) 
  from KASADURUM where DONEMI = :DONEMI
  INTO DLR_KAYIT_SAYISI; 
  if (DLR_KAYIT_SAYISI=0) then 
    insert into KASADURUM(DONEMI,FARK) values(:DONEMI,0);
  update KASADURUM set
    FARK = FARK+(:GELIR-:GIDER)
  where DONEMI = :DONEMI;
END
******************************************************
trigger şöyle

CREATE TRIGGER TI_KASADURUM FOR KASADURUM
ACTIVE AFTER INSERT POSITION 0
AS
DECLARE VARIABLE numrows INTEGER; 
BEGIN 
    select count(*) 
      from KASA

      where      NEW.DONEMI = KASA.DONEMI into numrows;
    IF (      numrows = 0    ) THEN 
    BEGIN 
      EXCEPTION ERWIN_CHILD_INSERT_RESTRICT; 
    END
    execute PROCEDURE spi_KASADURUM NEW.DONEMI, NEW.GELIR, NEW.GIDER, NEW.FARK;
END
amacım burda aynı tablo içindeki iki alanın farkını alıp üçüncü alana yazmak. ama kod çalışıyor görünüyor fakat işlem yapmıyor. nerede hata yapıyoruz acaba. bu işlem delphi tarafında yapılabiliyordur fakat ben vt tarafında yapmak istemiştim.

Mesajınıza uygun ve konuyu özetleyen kısa bir başlık yazın lütfen . mussimsek

kolay gelsin.
Cevapla