(12-03-2018, Saat: 20:46)mrmarman Adlı Kullanıcıdan Alıntı: 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;
Hocam bu şekilde tarih aralıklarında toplam veriyor ancak , verdiğim tarihlerdeki giriş ve çıkışların ikisinin toplamını hem girişe hemde çıkışa aynı rakamları veriyor.
ADOQuery2.sql.Clear;
ADOQuery2.sql.Add('select tip,');
ADOQuery2.sql.Add('(SELECT SUM(tutar) FROM kasa WHERE 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;
(12-03-2018, Saat: 21:33)serhatil Adlı Kullanıcıdan Alıntı: Darih nedir? Türkçesi bozuklar.
Haklısın kardeşim, dilimize özen göstermeliyiz.
Bizim Darih Tarih oldu, ama yinede arada kaynadı.