Group Stored Procedure

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
sinancaylak
Üye
Mesajlar: 151
Kayıt: 30 Oca 2004 09:16
Konum: Manisa

Group Stored Procedure

Mesaj gönderen sinancaylak »

Kod: Tümünü seç

begin
FOR

    SELECT TBL_ALISVERIS.IADE,
    TBL_ALISVERISDETAY.MUSTERI_ID,
    TBL_ALISVERISDETAY.ALISVERISNO,
    SUM( TBL_ALISVERISDETAY.MIKTAR ) AS MIKTAR,
    SUM( TBL_ALISVERISDETAY.TUTAR ) AS TUTAR,
    SUM( TBL_ALISVERISDETAY.SATISPUANI ) AS SATISPUAN,
    SUM( TBL_ALISVERISDETAY.SATIS_P_TUTAR) AS SATPTUTAR

    FROM TBL_ALISVERIS TBL_ALISVERIS
    INNER JOIN TBL_ALISVERISDETAY TBL_ALISVERISDETAY
    ON  (TBL_ALISVERIS.ALISVERISNO = TBL_ALISVERISDETAY.ALISVERISNO)
    WHERE TBL_ALISVERISDETAY.MUSTERI_ID=11 INTO:ALISVERISNO,:MUSTERI_ID
    GROUP BY TBL_ALISVERIS.IADE,TBL_ALISVERISDETAY.ALISVERISNO,TBL_ALISVERISDETAY.MUSTERI_ID

 DO BEGIN
    INSERT INTO TBL_PUAN_DETAY (ALISVERISNO,MUSTERI_ID) VALUES(:ALISVERISNO,:MUSTERI_ID);
    SUSPEND;
    end
END
yukarıdaki kodu INTO:ALISVERISNO,:MUSTERI_ID kısmı olmadan çalıştırabiliyorum ama procedur içerisine aldığım zaman parsing error veriyor bu konudaki yardımlarınızı bekliyorum.
Sinan ÇAYLAK
Software Developer
Delphi & .Net
Kullanıcı avatarı
undefined
Moderator
Mesajlar: 565
Kayıt: 06 Eki 2003 12:01
Konum: Bursa
İletişim:

Mesaj gönderen undefined »

Select cümlesindeki into'yu group by dan önceye koymanın bir nedeni varmı?

Bu operasyonu gerçekleştirmek için illa SP kullanman gerekli olmayabilir.
insert...select cümlesinide kullanabilirsin

Kod: Tümünü seç

insert into table (col1,col2,col3,...)
select col1,col2,col3... from table [where condition] 
Bu cümle joinli, grouplu cümleyi kabul edermi etmezmi bilmiyorum ama denemeye değer.
sinancaylak
Üye
Mesajlar: 151
Kayıt: 30 Oca 2004 09:16
Konum: Manisa

Mesaj gönderen sinancaylak »

SELECT CÜMLESİNDEKİ İNTO da gelen veriyi değişkene atıyorum dögü ile de başka bir tabloya kayıt ettiriyorum amacım TBL_ALISVERIS VE TBL_ALISVERISDETAY TABLOSUNU BİRLEŞTİRİP GRUPLANAN VERİYİ TBL_PUAN_DETAY TABLOSUNA TAŞIMAK GRUM BY CÜMLESİNİ WHERE DEN ÖNCEKİ SATIRA DA ALDIM AMA SONUÇ DEĞİŞMEDİ
Sinan ÇAYLAK
Software Developer
Delphi & .Net
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

SELECT in yapısı nasıl olursa olsun INTO (yani dönecek değerler) kısmı en sonunda olmalı :idea: INTO dan sonra boşluk vermeyi dene..
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
sinancaylak
Üye
Mesajlar: 151
Kayıt: 30 Oca 2004 09:16
Konum: Manisa

Mesaj gönderen sinancaylak »

recep hocam dediğinizi denedim ama yine olmadı
bende şöyle yaptım ama busefer şöyle diyor

Kod: Tümünü seç

begin
MUSTERI_ID=11;
FOR 

    SELECT TBL_ALISVERIS.IADE, 
    TBL_ALISVERISDETAY.MUSTERI_ID, 
    TBL_ALISVERISDETAY.ALISVERISNO, 
    SUM( TBL_ALISVERISDETAY.MIKTAR ) AS MIKTAR, 
    SUM( TBL_ALISVERISDETAY.TUTAR ) AS TUTAR, 
    SUM( TBL_ALISVERISDETAY.SATISPUANI ) AS SATISPUAN, 
    SUM( TBL_ALISVERISDETAY.SATIS_P_TUTAR) AS SATPTUTAR 

    FROM TBL_ALISVERIS TBL_ALISVERIS 
    INNER JOIN TBL_ALISVERISDETAY TBL_ALISVERISDETAY 
    ON  (TBL_ALISVERIS.ALISVERISNO = TBL_ALISVERISDETAY.ALISVERISNO) 
    WHERE TBL_ALISVERISDETAY.MUSTERI_ID=11
    GROUP BY TBL_ALISVERIS.IADE,TBL_ALISVERISDETAY.ALISVERISNO,TBL_ALISVERISDETAY.MUSTERI_ID
    INTO :ALISVERISNO


 DO BEGIN 
    INSERT INTO TBL_PUAN_DETAY (ALISVERISNO,MUSTERI_ID) VALUES(:ALISVERISNO,:MUSTERI_ID); 
    SUSPEND; 
    end 
END
ibexpertte bu sefer şöyle bir hata veriyor.

count of column list and variable list do not match.
Dynamic SQL Error.
SQL error code = -313.
count of column list and variable list do not match.


GROUP BY SATIRINI SONA ALDIĞIM ZAMANDA O SATIRI KIRMIZI İLE GÖSTERİP Parsing error hatası alıyorum.
Sinan ÇAYLAK
Software Developer
Delphi & .Net
Kullanıcı avatarı
undefined
Moderator
Mesajlar: 565
Kayıt: 06 Eki 2003 12:01
Konum: Bursa
İletişim:

Mesaj gönderen undefined »

Yanlış görmediysem sorgudan 7 tane değer çıkıo ama into dan sonra 1 tane değişken veriyorsun. Muhtemelen bunun için hata verio.

İlk mesajımda bahsettiğim ve kulak arkası ettiğin yöntemi denemeni hala tavsiye ederim.

Kolay gelsin.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

@undefined kardeşimizin dediği gibi SELECT kısmında 7 alan seçtirip INTO da sadece birini atamaya çalışıyorsun. Doğal olarak da veritabanı motoru "diğer seçilen alanları atayacağım değişkenler nerede" diye buna kızacaktır :?
En son rsimsek tarafından 23 Haz 2006 10:44 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
sinancaylak
Üye
Mesajlar: 151
Kayıt: 30 Oca 2004 09:16
Konum: Manisa

Mesaj gönderen sinancaylak »

Saolun Deneyeceğim
Sinan ÇAYLAK
Software Developer
Delphi & .Net
sinancaylak
Üye
Mesajlar: 151
Kayıt: 30 Oca 2004 09:16
Konum: Manisa

Mesaj gönderen sinancaylak »

undefined arkadaşım yardımın için teşekkür ederim dediğin oldu INTO dan sonra gelen değerler selectle aynı olmadığı için problem yaratıyormuş şimdi sorunsuz çalışıyor. İyi Çalışmalar
Sinan ÇAYLAK
Software Developer
Delphi & .Net
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Mesaj gönderen yusuf simsek »

rsimsek yazdı:@undefined kardeşimizin dediği gibi SELECT kısmında 7 alan seçtirip INTO da sadece birini atamaya çalışıyorsun. Doğal olarak da veritabanı motoru "diğer seçilen alanları atayacağım değişkenler nerede" diye buna kızacaktır :?
gerçekten de çok kızıyor hocam :D :D

bidaha kızdırmayıss
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
Cevapla