Cari Hesap Detaylı ekstrelerini stored procedure ile almak için birkaç gündür uğraşıyorum, sonunda bitti derken bir hata ile karşılaştım.
Sorun şu;
Cari hareket tablomda TARIH, ISLEMTURU, BORC, ALACAK alanlarım var (kısaca yazıyorum).
birde eğer cari hareket tablosunda islemturu=1 ise bu hareket bir faturadan gelmiş oluyor, detayında da bu faturadaki stok adını ve miktarını göstermem gerekiyor.
Procedure aşağıdaki şekilde
Kod: Tümünü seç
DECLARE VARIABLE BAKIYE DECIMAL(15,2);
BAKIYE = 0;
FOR SELECT TARIH, ISLEMTURU, ISLEMKODU, ACIKLAMA, BORC, ALACAK
FROM CARI_ISLEM
WHERE CARIKODU=:CKOD
INTO :TARIH, :ISLEMTURU, :ISLEMKODU, :BORC, :ALACAK
DO BEGIN
BAKIYE = :BAKIYE + (:BORC - :ALACAK);
ACIKLAMA='';
suspend; /* kayıt dışarı çıkartılıyor*/
IF (ISLEMTURU=1) THEN BEGIN /* islemturu 1 ise fatura */
FOR SELECT F.MIKTAR, S.ADI /* S.ADI stok adını alacak */
FROM FATURA2 F
LEFT JOIN STOK S ON S.KOD=F.STOKKODU
WHERE KOD=:ISLEMKODU
INTO :BORC, :ACIKLAMA /* borc'a miktar, açıklamaya stok adı alınacak */
DO BEGIN /* burada faturadaki stoklar listelenecek */
BAKIYE = :BAKIYE; /* bakiye aynı kalacak */
suspend; /* burada stoklar dışarı veriliyor */
END /* burada faturadaki stoklar listelenecek */
END /* islemturu 1 ise fatura */
END