Sql Sum() Sorgu Hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Hashirama
Üye
Mesajlar: 81
Kayıt: 26 Kas 2013 03:42

Sql Sum() Sorgu Hatası

Mesaj gönderen Hashirama »

Merhaba Arkadaşlar

Soru biraz basit olabilir ama bi türlü çözemedim, Access veri tabanımda tek tablom var. Aynı tarihte birden fazla deger girildiği için o tarihe ait degerlerin toplamını bulmak istiyorum.

tarihtablosu

sira : otomatik
deger: sayı
tarih : metin
saat : metin

Şöyle bir kod yazıyorum ancak "Dbedit4:field 'saat' not found" hatası veriyor.

Kod: Tümünü seç

 ADOquery1.Close;
        ADOquery1.SQL.Clear;
        ADOquery1.SQL.Add('select sum(deger) from tarihtablosu group by tarih' );
        ADOquery1.Open;
Bu yazdığım kod ise gayet düzgün çalışıyor.

Kod: Tümünü seç

 ADOquery1.Close;
       ADOquery1.SQL.Clear;
       ADOquery1.SQL.Add('select * from tarihtablosu ' );
        ADOquery1.SQL.Add('where tarih BETWEEN '+#39+DateTostr(now)+#39 + 'AND' + #39 + DatetoStr(now()-7) + #39 );
       ADOquery1.Open;
Bu sorgu cümlesinde ki hata sizce ne olabilir ?
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Sql Sum() Sorgu Hatası

Mesaj gönderen mrmarman »

DBEdit, DBGrid vb. için kullandığınız AdoQuery'yi değil bir tane bu tip hesaplamalar için müstakil AdoQuery kullanın.
Bunu kullanacak olursanız DBEdit dediğinize göre onlar da tetikleneceğinden ekranda görünmüyorlar ise en azından aşağıdaki gibi yapın.

Kod: Tümünü seç

        ADOquery1.SQL.Add('select sum(deger) as ToplamDeger, tarih from tarihtablosu group by tarih' );
hatta DBedit'lerin başkaları da ayaklanacaktır, bunun için şöyle yapın.

Kod: Tümünü seç

        ADOquery1.SQL.Add('select sum(deger) as ToplamDeger, * from tarihtablosu group by tarih' );
yine de ilk dediğimi yapın. :idea:
Resim
Resim ....Resim
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Re: Sql Sum() Sorgu Hatası

Mesaj gönderen m_ekici »

DBedit4 ü AdoQuery1 e bağlamışsın ve Fieldname bölümüne SAAT isminde bir alan tanımlamışsın. Ama yukarıdaki queryde saat isminde bir alan olmadığı için hatayı veriyor.
2. query de select * yazdığın için tüm alanlar geliyor. ve saat olduğundan hata vermiyor.

ek olarak query de tarih kıyaslamalarını aşağıdaki şekilde kullanmamanı öneririm. SQL in tarih formatına uymaz ise sıkıntı çıkarır.
BETWEEN '+#39+DateTostr(now)+#39 + 'AND' + #39 + DatetoStr(now()-7) + #39 );

viewtopic.php?f=2&t=28275&hilit=yyyy
Hashirama
Üye
Mesajlar: 81
Kayıt: 26 Kas 2013 03:42

Re: Sql Sum() Sorgu Hatası

Mesaj gönderen Hashirama »

Verdiğiniz cevaplar için teşekkür ederim. Bol kodlamalı geceler...
Cevapla