Merhaba Serkan Bey,
Ben yeni mesaj yazarken farkettim programlama kısmına yazmışsınız ben örneği ibexpertte yaptım. İnşallah işinize yarar.
Verdiğiniz örnekteki verilere göre bir vt yaptım. Sizinkinden farklı olarak
saat ve ürün kodu ekledim. Ayrıca tüm giriş çıkışları miktar alanına girip GCTURU alanına"GIRIS" ve "CIKIS" değerleri vererek giriş çıkış ayrımını yaptım.
Kodu aşağıdaki gibi kullanabilirsiniz.
40602 ürün kodudur. yazılan stored procedure ise aşağıdaki gibidir.
Kod: Tümünü seç
SET TERM ^ ;
CREATE PROCEDURE SERKANFIFO (
STOK_KODU VARCHAR(16))
RETURNS (
TARIHI DATE,
EVRAKNOSU VARCHAR(16),
GIRIS_MIKTARI INTEGER,
KULLANILAN_MIKTAR INTEGER,
KALAN_MIKTAR INTEGER)
AS
DECLARE VARIABLE SAATI TIME;
DECLARE VARIABLE TOPLAM_CIKISLAR INTEGER;
DECLARE VARIABLE TOPLAM_GIRISLER INTEGER;
begin
FOR
select TARIH,SAAT,EVRAKNO,MIKTAR from serkanhrk
WHERE STOKKODU=:stok_kodu AND GCTURU='GIRIS'
ORDER BY TARIH+SAAT
INTO :tarihi,:SAATI ,:evraknosu,:giris_miktari
DO BEGIN
TOPLAM_CIKISLAR=0;
TOPLAM_GIRISLER=0 ;
/* TOPLAM ÇIKIŞLARI BULMAK İÇİN */
SELECT CASE WHEN SUM(MIKTAR)>0 THEN SUM(MIKTAR) ELSE 0 END
FROM serkanhrk
WHERE STOKKODU=:stok_kodu AND GCTURU='CIKIS' AND TARIH+SAAT<=:tarihi+:SAATI
into :toplam_cikislar ;
kullanilan_miktar=:toplam_cikislar;
/* TOPLAM GIRIŞLERİ BULMAK İÇİN */
SELECT CASE WHEN SUM(MIKTAR)>0 THEN SUM(MIKTAR) ELSE 0 END
FROM serkanhrk
WHERE STOKKODU=:stok_kodu AND GCTURU='GIRIS' AND TARIH+SAAT<=:tarihi+:SAATI
into :toplam_girisler ;
KALAN_MIKTAR=:toplam_girisler-:toplam_cikislar;
/* Procedure Text */
suspend;
END
end
^
SET TERM ; ^
GRANT SELECT ON SERKANHRK TO PROCEDURE SERKANFIFO;
GRANT EXECUTE ON PROCEDURE SERKANFIFO TO SYSDBA;
Evrak nosu 2 olan satırın saatini :08:45:00 , evrak nosu RD-4 olan satırın saatini 16:40:00 yapınca 15.01:2007 tarihinde ki satır
Kod: Tümünü seç
tarih evrak nosu giriş miktarı kullanılan miktar kalan miktar
------------- -------------- -------------- ------------------- ---------------
15.01.2007 2 56 0 479
25.01.2007 3 24 300 203
Evrak nosu 2 olan satırın saatini :19:00:00 , evrak nosu RD-4 olan satırın saatini 16:40:00 yapınca 15.01:2007 tarihinde ki satır
Kod: Tümünü seç
tarih evrak nosu giriş miktarı kullanılan miktar kalan miktar
------------- -------------- -------------- ------------------- ---------------
15.01.2007 2 56 300 179
25.01.2007 3 24 300 203
şeklinde sonuçlar çıktı. Yani bu da saati gözönüne aldığını gösterir.
Bu şekilde bir deneyin. Belki işinize yarar.
İyi çalışmalar.