Arkadaşlar Merhaba ; BABS Raporu hazırlıyorum fakat DBGrid1 de "KDV_HARIC_TUTAR " sütününü toplatıp Edit alanına yazdırmak istiyorum bir türlü beceremedim aşağıdaki sorguyu yazabildim ondada ilk satırı topluyor diğer kayıtların toplamını vermiyor. Yardımcı olabilir misiniz?
DM.BORC_TOPLAM.Close;
DM.BORC_TOPLAM.SelectSQL.Clear;
DM.BORC_TOPLAM.SelectSQL.Text:=
'select CARI_PC_NO, ADI_SOYADI, SUM(GENEL_TOPLAM_GIRIS) BORC_TOPLAMI, COUNT(CARI_PC_NO) TOPLAM_DONEM'
+' from ISLEM_TBL WHERE SON_ODEME_TARIHI>='''+DateToStr(Ilk_Tar.Date)+''' and (SON_ODEME_TARIHI<='''+DateToStr(Son_Tar.Date)+''')'+' AND (ODEME_DURUMU='+'''Ödenmedi'''+')'
+' GROUP BY CARI_PC_NO, ADI_SOYADI ORDER BY ADI_SOYADI ASC';
DM.BORC_TOPLAM.Open;
Select ile seçilen alanları Group by da belirtmek gerek. Sizin kodunuzda Where yok, gözden mi kaçırdınız yoksa gerek mi görmediniz?
Sütun altına toplam almak istiyorsanız DBGridFooter kullanabilirsiniz. Jedi bileşen seti içerisinde JvDBUltimGrid ve JvDBGridFooter kullanarak istediğiniz sonucu elde edebilirsiniz. https://ibb.co/zPPvt84
procedure TForm19.Button1Click(Sender: TObject);
Var
GenTp : String;
begin
with BaBsRapor do
begin
BaBsRapor.Close;
BaBsRapor.SQL.Clear;
BaBsRapor.sql.Text:='select MONTH(TARIH), SUM(TEFI.BRUTTUTAR - SAT_ISKT - GEN_ISK1T - GEN_ISK2T - GEN_ISK3T) AS KDV_HARIC_TUTAR' +
'from TBLFATUIRS TEFI' +
'WHERE (FTIRSIP=''1'') AND (TIPI=''2'') AND MONTH(TARIH)='+#39+''+Edit1.Text+''+#39+'' +
'GROUP BY MONTH(TARIH),FTIRSIP,TIPI' +
'HAVING (Sum(TEFI.BRUTTUTAR - SAT_ISKT - GEN_ISK1T - GEN_ISK2T - GEN_ISK3T)>=$5000)';
Active := True;
if not IsEmpty then
begin
GenTp := 0;
First;
while not Eof do
begin
GenTp := GenTp + FieldByName('KDV_HARIC_TUTAR').AsFloat;
Next;
end;
GenelToplam.Text:=BaBsRapor.fieldbyname('KDV_HARIC_TUTAR').asstring;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
toplam: double;
begin
toplam:=0;
Dataset.First;
WHILE NOT Dataset.Eof DO
Begin
toplam:=TOPLAM+DatasetGENEL_TOPLAM_GIRIS.Value;
Dataset.Next;
End;
Edit1.text:=FloatToStr(toplam);
end;