SQL & Delphi | İki Tarih Arasındaki Verileri Toplamak

Engin.

Kilopat
Katılım
18 Haziran 2016
Mesajlar
1.960
Makaleler
2
Çözümler
10
Merhaba. İki tarih arasındaki verileri toplamak istiyorum. Aşağıdaki kodu deniyorum fakat ölçüt veri tipi uyuşmazlığı gibi bir hata veriyor program. Yardım edin.

Delphi bilmeseniz dahi SQL komutunu söylemeniz yeterli. Nerede hatam var anlayamadım tam olarak.

SQL:
select sum(randevuUcret) as toplam from gecmisRandevular where randevuTarih between :baslangictarihi and :bitistarihi
Kod:
with ADOQuery1 do
   begin
      Close;
      SQL.Clear;
      SQL.Text := 'select sum(randevuUcret) as toplam from gecmisRandevular where randevuTarih between :bitistarihi and :baslangictarihi';
      Parameters.ParamByName('baslangictarihi').Value:=datetimepicker1.Date;
      Parameters.ParamByName('bitistarihi').Value:=datetimepicker2.Date;
      Open;
      ADOQuery1.First;
      while not ADOQuery1.Eof do
      begin
      Label3.Caption:='Kazanç: '+(ADOQuery1['toplam']);
       //ADOQuery1.Next;
      end;
   end;

1656521350370.png

1656521359537.png
 
Buraya group by randevuUcret ekleyerek deneyebilir misin
Hocam inanın kafam kalmadı artık. Bu kadar ucube bir dilde SQL kullanmak o kadar zor ki. Sabah saat sekizden beri bu programla uğraşıyorum. Artık en ufak şeyi bile anlayamayacak hale geldim.

Yazdığınız kodu nereye yazmam gerekiyor tam olarak?

Tam olarak yapmak istediğim şeyi yazayım tekrar. Program üzerinde 2 tane DateTimePicker var. Tarih seçeceğim. Başlangıç ve bitiş tarihini seçebilmem için 2 tane DateTimePicker koydum.

Tarihleri seçeceğim, ardından seçtiğim iki tarih arasında olan tarihleri veritabanındaki randevuTarih kolonunda olan tarihlerin olduğu satırların randevuUcret sütunlarındaki verilerin (sayıların) toplamını bulacağım.

Ne yazdım inanın bilmiyorum. Umarım anlayabilmişsinizdir. :/
 
Hocam inanın kafam kalmadı artık. Bu kadar ucube bir dilde SQL kullanmak o kadar zor ki. Sabah saat sekizden beri bu programla uğraşıyorum. Artık en ufak şeyi bile anlayamayacak hale geldim.

Yazdığınız kodu nereye yazmam gerekiyor tam olarak?
Dediğim kodu denediniz mi?

SQL:
SELECT randevuUcret.
FROM tableName.
WHERE From_date >= '2013-01-03' AND.
 To_date <= '2013-01-09'
 
Dostum dediğin kod benim hiçbir işime yaramıyor. From_date kısmına ne yazayım? To_date kısmına ne yazayım? Bu verileri toplamam gerekiyor. Hani sum?
İlk tarih, başlangıç tarihi. İkinci tarih ise o tarihe kadarki veriler. tableName'e ise tablonuzun adı. Bunu anlamayacağınızı düşünememişim. Kusura bakmayın.
 
SQL:
select sum(ucret) from table_1
where randevutarih BETWEEN '01-01-2019' AND '01-01-2023'
Bu şekilde SQL kodu.
Bunu da şöyle yazarsınız:
C#:
baglanti.open();
sqlcommand tariharasitopla= new sqlcommand ("select sum(ucret) from table_1 where randevutarih BETWEEN '01-01-2019' AND '01-01-2023'")
sqldatareader reader= tariharasitopla.executereader();
while (reader.read())
{
    label1.text=  reader[0].ToString();
}
baglanti.close();
Böyle olması gerekir.
Kendi kodunuza göre değişkenleri, tarihi vesaire atarsınız.
Csharp ile yazdım da ben hangi dili kullanıyorsunuz bilmiyorum. Delphi ile alakam yok. Ama siz halledersiniz, güveniyorum size.
 
Son düzenleme:

Geri
Yukarı