stored procedureyi Query içinde kullanmak?
-
- Üye
- Mesajlar: 47
- Kayıt: 26 Eki 2006 08:30
stored procedureyi Query içinde kullanmak?
merhaba arkadaşlar
firebirdde stored procedure kullanmayla alakalı bir sıkıntım var
procedurem şöyle
SET TERM ^ ;
CREATE PROCEDURE PR_CARIBAKIYE(
CARI_ID INTEGER) //input değeri
RETURNS(
BAKIYE FLOAT) //output değeri
AS
DECLARE VARIABLE BORC FLOAT;
DECLARE VARIABLE ALACAK FLOAT;
BEGIN
BORC=0;
ALACAK=0;
SELECT SUM(CHA_MEBLAG) from CARI_HAREKETLER
WHERE CHA_CARI_RECNO=:CARI_ID AND CHA_EVRAK_TIP=0 INTO BORC;
SELECT SUM(CHA_MEBLAG) from CARI_HAREKETLER
WHERE CHA_CARI_RECNO=:CARI_ID AND CHA_EVRAK_TIP=1 INTO ALACAK;
BAKIYE=ALACAK-BORC;
/* Procedure body */
SUSPEND;
END^
SET TERM ; ^
burada cari hareketlerden cari id nolara göre filtre edilip bakiye hesabı yapıyorum
bunu ise View de şöyle kullanmayı düşündüm
SELECT cari_kod,cari_unvan1,
PR_CARIBAKIYE(cari_kod) as BAKIYE
FROM CARI
ORDER BY cari_kod
ama olmuyor bir türlü kullanamadım. şöyle de denedim ama yine olmadı
SELECT cari_kod,cari_unvan1,
BAKIYE=(Select * From PR_CARIBAKIYE(cari_kod)) as BAKIYE
FROM CARI
ORDER BY cari_kod
tek başına procedureyi test ettim yani Select * From PR_CARIBAKIYE(1) şeklinde
o zaman BAKIYE değerini 1 nolu cari için dönderiyor ama benim yapmak istediğim
şöyle bir görüntü
Kodu Ünvanı Bakiye
001 Ömer DOĞAN 1000
002 Deneme Hesap 500
003 Deneme 2 -2500
yardımlarınızı bekliyorum şimdiden çok teşekkür ederim.
firebirdde stored procedure kullanmayla alakalı bir sıkıntım var
procedurem şöyle
SET TERM ^ ;
CREATE PROCEDURE PR_CARIBAKIYE(
CARI_ID INTEGER) //input değeri
RETURNS(
BAKIYE FLOAT) //output değeri
AS
DECLARE VARIABLE BORC FLOAT;
DECLARE VARIABLE ALACAK FLOAT;
BEGIN
BORC=0;
ALACAK=0;
SELECT SUM(CHA_MEBLAG) from CARI_HAREKETLER
WHERE CHA_CARI_RECNO=:CARI_ID AND CHA_EVRAK_TIP=0 INTO BORC;
SELECT SUM(CHA_MEBLAG) from CARI_HAREKETLER
WHERE CHA_CARI_RECNO=:CARI_ID AND CHA_EVRAK_TIP=1 INTO ALACAK;
BAKIYE=ALACAK-BORC;
/* Procedure body */
SUSPEND;
END^
SET TERM ; ^
burada cari hareketlerden cari id nolara göre filtre edilip bakiye hesabı yapıyorum
bunu ise View de şöyle kullanmayı düşündüm
SELECT cari_kod,cari_unvan1,
PR_CARIBAKIYE(cari_kod) as BAKIYE
FROM CARI
ORDER BY cari_kod
ama olmuyor bir türlü kullanamadım. şöyle de denedim ama yine olmadı
SELECT cari_kod,cari_unvan1,
BAKIYE=(Select * From PR_CARIBAKIYE(cari_kod)) as BAKIYE
FROM CARI
ORDER BY cari_kod
tek başına procedureyi test ettim yani Select * From PR_CARIBAKIYE(1) şeklinde
o zaman BAKIYE değerini 1 nolu cari için dönderiyor ama benim yapmak istediğim
şöyle bir görüntü
Kodu Ünvanı Bakiye
001 Ömer DOĞAN 1000
002 Deneme Hesap 500
003 Deneme 2 -2500
yardımlarınızı bekliyorum şimdiden çok teşekkür ederim.
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
Re: stored procedureyi Query içinde kullanmak?
Burada, "BAKIYE=" deklarasyonunu kaldırarak dener misin?BLuE_ALoNE yazdı: SELECT cari_kod,cari_unvan1,
BAKIYE=(Select * From PR_CARIBAKIYE(cari_kod)) as BAKIYE
FROM CARI
ORDER BY cari_kod
Kolay gele..
-
- Üye
- Mesajlar: 47
- Kayıt: 26 Eki 2006 08:30
- White Rose
- Üye
- Mesajlar: 726
- Kayıt: 06 Tem 2005 09:41
- Konum: Güneyden
- İletişim:
Merhaba,
Bence siz SUSPEND ve FOR SELECT deyimine yoğunlaşın. Ben şimdi tam olarak örnek veremiyorum. Ama işinizin SUSPEND ile FOR SELECT çözüleceğini biliyorum.
Kolay gelsin.
Bence siz SUSPEND ve FOR SELECT deyimine yoğunlaşın. Ben şimdi tam olarak örnek veremiyorum. Ama işinizin SUSPEND ile FOR SELECT çözüleceğini biliyorum.
Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Logo Go özel eğitim, web tasarım, teknik servis
Merhaba,
Aşağıdaki kod içinde 1,2,3,4,5 verileri olan bir tabloyu
şeklinde görüntüler ki bu da sizin istediğiniz mantığa örnektir.
Kolay gelsin.
Aşağıdaki kod içinde 1,2,3,4,5 verileri olan bir tabloyu
Kod: Tümünü seç
1
2
3
4
5
Kod: Tümünü seç
SET TERM ^ ;
CREATE PROCEDURE VERIOKU
RETURNS (
DEGER INTEGER)
AS
DECLARE VARIABLE RAKAM INTEGER;
begin
FOR SELECT KAYITNO FROM barkod
INTO :DEGER
DO BEGIN
SUSPEND;
END
end
^
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Logo Go özel eğitim, web tasarım, teknik servis
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
Merhaba,
Sizinkine yakın bir örnek yapmaya çalıştım. Sanırım sorun alias kullanmamanızda imiş.
şeklinde bir kod ibexpert te çalışmazken (cari_id yi tanımadığını söylüyor.)
Aşağıdaki kod sorunsuz çalıştı.
Kolay gelsin.
Sizinkine yakın bir örnek yapmaya çalıştım. Sanırım sorun alias kullanmamanızda imiş.
Kod: Tümünü seç
SELECT cari_ID,ADISOYADI,
(SELECT BAKIYE FROM
bluecaribakiye(cari_ID)) AS BAKIYE
FROM bluecari
ORDER BY cari_ID
Aşağıdaki kod sorunsuz çalıştı.
Kod: Tümünü seç
SELECT A.cari_ID,A.ADISOYADI,
(SELECT BAKIYE FROM
bluecaribakiye(A.cari_ID)) AS BAKIYE
FROM bluecari A
ORDER BY cari_ID
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Logo Go özel eğitim, web tasarım, teknik servis
-
- Üye
- Mesajlar: 47
- Kayıt: 26 Eki 2006 08:30
çok teşekkür ederim
kardeş yardımın için çok teşekkür ederim beni büyük bir sorundan kurtardın. allah razı olsun senden