Gruplama Proplemi

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
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Gruplama Proplemi

Mesaj gönderen pro_imaj »

Merhaba,

Aşağıdaki SQL cümlesi ile sorgunun sonucu genel toplma olarak sorunsuz dönüyor. Şöyle bir sorun ortaya çıktı ve mantığını çözemedim.

Kod: Tümünü seç

SELECT SUM (Tutar) FROM FINSAT402.ACK
where Banka<>'ugur'
and EvrakNo       Between '      0'        and  '999999999999999'
and SonIslemTip   Between '   0'        and  '10'
and Veren         Between '   0'        and  '999999999999'
and VadeTarih     Between '   0'        and  '999999'
and AlimTarih     Between '  0'        and  '999999'
and CekNo         Between '  0'        and  '99999999999'
and Tutar         Between '  0'        and  '999999999999999999'
and SonIslemCHK   Between '   0'        and  '9999999999999999999999999'
and AlimTarih     <='38353'
Şu işlemi yapmaya çalışıyorum.
SonIslemTip alanı 1,2,3,4,5,6,7,8,9,10,11,12,13 değerleri alabiliyor.

Kod: Tümünü seç

'Portfoye Giriş' then   tip:=0;
'Ciro' then   tip:=2;
'Teminata Çıkış' then   tip:=3;
'Tahsilata Çıkış' then   tip:=4;
'İade Edildi' then   tip:=5;
'Kayıp' then   tip:=6;
'Ödenmedi' then   tip:=7;
'Karşılıksız' then   tip:=8;
'Portfoye Giriş' then   tip:=10;
'İade Alındı' then   tip:=10;
'Bankadan Tahsil Edildi' then   tip:=12;
'Kasadan Tahsil Edildi' then   tip:=13;
eğer 1 ile 13 yazılırsa bunların toplamlarının ayrı ayrı yazılmasını nasıl sağlayabilirim acaba.

Saygılarımla
Teşekkür ederim
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
onaydin

Mesaj gönderen onaydin »

Anladığım kadarıyla
viewtopic.php?t=9790
burda yaptıklarınızı bir daha yaparsanız select i çekersiniz.
Case kullanmak gerekiyor
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba
Sorunu Şöyle çözdük.
Tuanna ve ali hocamın yardımlarıyla.

Şöyle bir çözüm bulduk

Kod: Tümünü seç

Sistem.AckToplamQuery.SQL.Strings[0]:='SELECT SonIslemTip, Sum (Tutar) From FINSAT4'+Giris.SdkQueryKod.Text+'.ACK';
Sistem.AckToplamQuery.SQL[1]:='Where Banka<>''ugur''';
Sistem.AckToplamQuery.SQL.Strings[2]:='and EvrakNo       Between '''+EvrakNo1+'''        and  '''+EvrakNo2+'''';
Sistem.AckToplamQuery.SQL.Strings[3]:='and SonIslemTip   Between '''+SonIslemTip1+'''    and  '''+SonIslemTip2+'''';
Sistem.AckToplamQuery.SQL.Strings[4]:='and Veren         Between '''+Veren1+'''          and  '''+Veren2+'''';
Sistem.AckToplamQuery.SQL.Strings[5]:='and VadeTarih     Between '''+VadeTarih1+'''      and  '''+VadeTarih2+'''';
Sistem.AckToplamQuery.SQL.Strings[6]:='and AlimTarih     Between '''+AlimTarih1+'''      and  '''+AlimTarih2+'''';
Sistem.AckToplamQuery.SQL.Strings[7]:='and CekNo         Between '''+CekNo1+'''          and  '''+CekNo2+'''';
Sistem.AckToplamQuery.SQL.Strings[8]:='and Tutar         Between '''+Tutar1+'''          and  '''+Tutar2+'''';
Sistem.AckToplamQuery.SQL.Strings[9]:='and SonIslemCHK   Between '''+SonIslemCHK1+'''    and  '''+SonIslemCHK2+'''';
Sistem.AckToplamQuery.SQL.Strings[10]:='and AlimTarih     <=''38353''Group by  SonIslemTip ';
Saygılarımla.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Cevapla