Firebird 1.5 kullnıyorum.
Kayıt amaclı olarak ilk defa sp yazmaya calısıyorum. Forumda arama yaptım, bazı sp leride inceledim. Ancak şu for ... do meselesinin mantıgını anlyamadım. Hatamda bundan dolayı diye dusunuyorum. Sp de for ...do mantığı hakkında bilgi ve yaptıgım hatayı duzeltmekte yardımcı olursanız sevinirim.
Demırbaslarla ılgılı iki tablom var. Hareketlerle ilgili tablodakı degerlerden en son islem tarihli verileri bir oranla carparak elde ettiğim yeni sonucları yine aynı tabloya insert etmek istiyorum.
Kod: Tümünü seç
ALTER PROCEDURE DENE5 (
TRH DATE,
Y_D_ORANI FLOAT)
AS
DECLARE VARIABLE DNO INTEGER;
DECLARE VARIABLE SNO INTEGER;
DECLARE VARIABLE A DOUBLE PRECISION;
DECLARE VARIABLE B DOUBLE PRECISION;
begin
INSERT INTO hareket2 (DEMIRBASNO, SIRANO)
SELECT DEMIRBASNO, SIRANO FROM demirbaskarti;
select max(islemtarihi)as tarih, demirbasno, sirano from hareket2
group by demirbasno, sirano
INTO :trh, :dno, :sno;
select sondeger from hareket2
where islemtarihi=:trh and demirbasno=:dno and sirano=:sno
into:A;
B=:A*Y_D_ORANI;
UPDATE hareket2
set
ONCEKI_DEGER=:A,
ISLEMTARIHI=:TRH,
SONDEGER=:B,
YDORANI=:Y_D_ORANI
WHERE DEMIRBASNO=:DNO AND SIRANO=:SNO;
end
Kod: Tümünü seç
multiple rows in singleton select