Delphi Can

Orjinalini görmek için tıklayınız: Delphi Sql Tarih Sorunu
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Sayfalar: 1 2
Cümleten Hayırlı akşamlar;
 
       
ADOQuery2.close;
       ADOQuery2.sql.Clear;
       ADOQuery2.sql.Add('select tip,');
       ADOQuery2.sql.Add('(SELECT SUM(tutar) FROM kasa WHERE tip like ''G%'') AS TGIRIS,');
       ADOQuery2.SQL.Add('(SELECT SUM(tutar) FROM kasa WHERE tip like ''Ç%'') AS TCIKIS');
       ADOQuery2.SQL.Add('FROM KASA');
       ADOQuery2.SQL.ADD('where tarih BETWEEN');
       ADOQuery2.SQL.ADD(':ILK AND :SON ');
       ADOQuery2.SQL.Add('GROUP BY tip');
       ADOQuery2.Parameters.ParamByName('ILK').Value:=strtodate(Edit1.text);
        ADOQuery2.Parameters.ParamByName('SON').Value:=strtodate(Edit2.text);
        ADOQuery2.Open;

Bu kodlarda nerede sorun var acaba, istediğim tarih aralığını toplamları değil, tamamının toplamlarını veriyor...  Huh
Burada SELECT SUM() ile oluşturduğun satır(lar) tek başına tüm kayıtları dolaşır. 

Bunu limitlemek için sonuna AND ekleyip aynı tarih aralıklarını her birine vermen lazım.

Şöyle dener misin ...
Delphi IDE açıp kabalama yazdım, yazım hatam olmuşsa düzeltirsin.
G% ve Ç% sadece birer kelime ise yazıyorum; zaten Group By ile GİRİŞ ve ÇIKIŞ ifadelerini alıyorsan neden her birisi için ayrı ayrı sorgu yapıyorsun ki, gerek yok. Böyle bir dene.
       ADOQuery2.close;
      ADOQuery2.sql.Clear;
      ADOQuery2.sql.Add('select tip,');
      ADOQuery2.sql.Add('(SELECT SUM(tutar) FROM kasa Tablo2 WHERE Tablo2.tip = Tablo1.tip where Tablo2.tarih BETWEEN :ILK1 AND :SON1 ) as [TOPLAM]');
      ADOQuery2.SQL.Add('FROM KASA Tablo1');
      ADOQuery2.SQL.Add('GROUP BY tip');
      ADOQuery2.Parameters.ParamByName('ILK1').Value:=strtodate(Edit1.text);
      ADOQuery2.Parameters.ParamByName('SON1').Value:=strtodate(Edit2.text);
      ADOQuery2.Open;
Darih nedir? Türkçesi bozuklar.
İtidal lütfen. Cevap hakkı için yazmak zorunda kaldım.
Türkçe'yi doğru kullandığınızı varsayarak çoğul ek kullandığınıza göre ve bu başlıktaki iki mesajdan birisi de bana ait olunca ayıp olmuyor mu   Exclamation
(12-03-2018, Saat: 21:50)mrmarman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Olİtidal lütfen. Cevap hakkı için yazmak zorunda kaldım.
Türkçe'yi doğru kullandığınızı varsayarak çoğul ek kullandığınıza göre ve bu başlıktaki iki mesajdan birisi de bana ait olunca ayıp olmuyor mu   Exclamation

Yo üzerinize alınmayın, sizi kastetmedim mister mrman.Türkçesi bozuk bir kitle var burada, ben yer yer o arkadaşlara böyle yazarım(sataşırım).Arkadaşı da onlara dahil ettmem nedeniyle çoğul kullandım.
(12-03-2018, Saat: 21:33)serhatil Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlDarih nedir? Türkçesi bozuklar.

Türkçe özel isimdir; özel isimlere gelen ekler ayrı yazılır.  Wink
(13-03-2018, Saat: 10:49)SimaWB Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(12-03-2018, Saat: 21:33)serhatil Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlDarih nedir? Türkçesi bozuklar.

Türkçe özel isimdir; özel isimlere gelen ekler ayrı yazılır.  Wink

Yanlış bilgi hocam.Türk kelimesi özeldir üzerine -ce yapım eki alır.-ce sesi ünsüz benzeşmesinden dolayı - çe'ye dönüşür.Ortaya çıkan kelime özel de olsa yapım ekinden sonra gelen ekler ayrılmaz.Özet olarak ''Türkçesi" ifadesi doğrudur.Arkadaşı pek sevmem ama yanlış bilgi de vermeyelim.
Ben, "arkadaşı sevmiyorum" diyemem ama Türkçe özel isimdir Smile
"Genel Türk dili" manasına gelir. Bakınız TDK.
Zaten özel olmasında sıkıntı yok ama gelen ekler ayrılmaz.
(13-03-2018, Saat: 11:23)savasabd Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlZaten özel olmasında sıkıntı yok ama gelen ekler ayrılmaz.

Şimdi anladım. Evet o konuda haklısınız. 
Öncelikle serhatil'den, sonra sizden ve en sonunda da yanlış bilgi verdiğim ve buradaki konuyu gereksiz uzattığım için tüm okuyanlardan özür dilerim.
Sayfalar: 1 2