Kod: Tümünü seç
ALTER PROCEDURE TUTARKDV (
TTRH DATE,
BTRH DATE,
EYIL INTEGER,
ESIRKET SMALLINT,
MUSNO INTEGER)
RETURNS (
TTUTAR DOUBLE PRECISION)
AS
DECLARE VARIABLE EK_ORAN DOUBLE PRECISION;
DECLARE VARIABLE ETUTAR DOUBLE PRECISION;
DECLARE VARIABLE EDAHIL VARCHAR(1);
begin
for select dahil,tutar,k_oran from fatura
where sirket_kodu =:esirket and mali_yil =:eyil and
musteri_kodu =:musno and f_tar >=:btrh and f_tar <=:ttrh
into :edahil,:etutar,:ek_oran
do
begin
if (edahil='0') then
begin
ttutar = etutar + (etutar * (ek_oran / 100));
end
else
begin
ttutar = etutar;
end
end
suspend;
end
Örnek -> TTUTAR='1000'
Ama ben bunu tablodaki herkayıt için hesaplayıp bir kayıt seti olarak almak istiyorum.
Kod: Tümünü seç
select f.fatura_no, t.ttutar
from fatura f, tutarkdv(:ttrh,:btrh,:eyil,:esirket,:musno,:efatura) t
where f.sirket_kodu =:esirket and f.mali_yil =:eyil and f.musteri_kodu =:musno
and f.f_tar >=:btrh and f.f_tar <=:ttrh and f.fatura_no =:efatura
Söylediğim gibi ben bunu recordset olarak tüm tablo için listelemek istiyorum.
SQL surgusunda procedure ile ilişkilendirmeye çalıştım. Procedure ile
:efatura paramını gelen kayıt setinin fatura numnarası ile ilişkilendirmeye çalıştım. Birtürlü yapamadım.
Artık bu işlem procedure ilemi sorgu ilemi yapılır bilemiyorum.
Sizlerden Yardımlarınızı bekliyorum. Herkeze Kolaygelsin.