adoquery tarih sorgusu ve alan toplamı aldırma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 10
- Kayıt: 20 Eyl 2014 01:35
adoquery tarih sorgusu ve alan toplamı aldırma
aşağıdaki kodda iki tarih arası kayıtları listeliyorum. Listeleme yaparken veritabanımdaki 3 tane alanında toplamını aldırmak ve edit kutularına yazdırmak istiyorum. Yardımcı olursanız çok memnun olurum.
alan1, alan2, alan3 ---- para birimi olarak saklı access veritabanında. sum komutunu bir türlü doğru yazamadım. lütfen yardım. şimdiden teşekkürler.
procedure Traporlar.BitBtn3Click(Sender: TObject);
begin
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.Fields.Clear;
AdoQuery1.SQL.add('SELECT * from fisler');
AdoQuery1.SQL.Add('WHERE (fis_tarihi BETWEEN :@Tar1 and :@Tar2 and satici_adi Like"'+Combobox1.Text+'%")');
AdoQuery1.Parameters.ParamByName('@Tar1').Value := DateToStr(DateTimePicker1.Date);
AdoQuery1.Parameters.ParamByName('@Tar2').Value := DateToStr(DateTimePicker2.Date);
AdoQuery1.SQL.Add('ORDER BY Fis_tarihi DESC' );
AdoQuery1.Open;
end;
alan1, alan2, alan3 ---- para birimi olarak saklı access veritabanında. sum komutunu bir türlü doğru yazamadım. lütfen yardım. şimdiden teşekkürler.
procedure Traporlar.BitBtn3Click(Sender: TObject);
begin
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.Fields.Clear;
AdoQuery1.SQL.add('SELECT * from fisler');
AdoQuery1.SQL.Add('WHERE (fis_tarihi BETWEEN :@Tar1 and :@Tar2 and satici_adi Like"'+Combobox1.Text+'%")');
AdoQuery1.Parameters.ParamByName('@Tar1').Value := DateToStr(DateTimePicker1.Date);
AdoQuery1.Parameters.ParamByName('@Tar2').Value := DateToStr(DateTimePicker2.Date);
AdoQuery1.SQL.Add('ORDER BY Fis_tarihi DESC' );
AdoQuery1.Open;
end;
Re: adoquery tarih sorgusu ve alan toplamı aldırma
merhaba sum yöntemini sana örnek kodla anlatmaya çalışacam dilim döndüğünce sen kendine göre uyarlarsın
kolay gelsin
Kod: Tümünü seç
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.text:='select (sum(alan1)+sum(alan2)+sum(alan3)) as toplam from tablo where .....';
adoquery1.execsql;
Soru Sorarken yazmaya Üşenmeyen Parmaklar Sorunun Çözüldükten Sonra Teşekkür etmeye de Üşenmesin.
-
- Üye
- Mesajlar: 10
- Kayıt: 20 Eyl 2014 01:35
Re: adoquery tarih sorgusu ve alan toplamı aldırma
procedure Traporlar.BitBtn3Click(Sender: TObject);
var
bakiye:real;
begin
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.Fields.Clear;
AdoQuery1.SQL.text := 'select fis_tarihi, fis_no, musteri_adi, sum(ezine_inek_alis) as bakiye from fisler ';
AdoQuery1.SQL.Add('WHERE (fis_tarihi BETWEEN :@Tar1 and :@Tar2 and satici_adi Like"'+Combobox1.Text+'%")');
AdoQuery1.Parameters.ParamByName('@Tar1').Value := DateToStr(DateTimePicker1.Date);
AdoQuery1.Parameters.ParamByName('@Tar2').Value := DateToStr(DateTimePicker2.Date);
AdoQuery1.SQL.Add('ORDER BY Fis_tarihi DESC' );
AdoQuery1.Open;
Edit1.Text := FloatToStr(bakiye);
end;
SQL text ile başalayan satırda sum komutunu kullanıyorum, butono tıkladığımda şöyle bir hata veriyor.
Toplam bir işlevin bir parçası olarak belirtilen 'ezine_inek_alış' ifadesini içermeyen bir sorguyu yürütmeyi denediniz diyor.
Bir türlü komutu doğru yazmayı beceremedim. Yardımlarınızı bekliyorum. şimdiden teşekkürler.
var
bakiye:real;
begin
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.Fields.Clear;
AdoQuery1.SQL.text := 'select fis_tarihi, fis_no, musteri_adi, sum(ezine_inek_alis) as bakiye from fisler ';
AdoQuery1.SQL.Add('WHERE (fis_tarihi BETWEEN :@Tar1 and :@Tar2 and satici_adi Like"'+Combobox1.Text+'%")');
AdoQuery1.Parameters.ParamByName('@Tar1').Value := DateToStr(DateTimePicker1.Date);
AdoQuery1.Parameters.ParamByName('@Tar2').Value := DateToStr(DateTimePicker2.Date);
AdoQuery1.SQL.Add('ORDER BY Fis_tarihi DESC' );
AdoQuery1.Open;
Edit1.Text := FloatToStr(bakiye);
end;
SQL text ile başalayan satırda sum komutunu kullanıyorum, butono tıkladığımda şöyle bir hata veriyor.
Toplam bir işlevin bir parçası olarak belirtilen 'ezine_inek_alış' ifadesini içermeyen bir sorguyu yürütmeyi denediniz diyor.
Bir türlü komutu doğru yazmayı beceremedim. Yardımlarınızı bekliyorum. şimdiden teşekkürler.
Re: adoquery tarih sorgusu ve alan toplamı aldırma
Kod: Tümünü seç
AdoQuery1.SQL.text := 'select fis_tarihi, fis_no, musteri_adi, sum(ezine_inek_alis) as bakiye from fisler ';
AdoQuery1.SQL.Add('WHERE (fis_tarihi BETWEEN :@Tar1 and :@Tar2 and satici_adi Like"'+Combobox1.Text+'%")');
bu iki satır arasındaki farkı görebildin mi?
adoquery.sql.text kullanıyorsun sonra Adoquery.sql.add kullanıyorsun. hata burda.
Kod: Tümünü seç
AdoQuery1.SQL.text := 'select fis_tarihi, fis_no, musteri_adi, sum(ezine_inek_alis) as bakiye from fisler '
+'WHERE (fis_tarihi BETWEEN :@Tar1 and :@Tar2 and satici_adi Like"'+Combobox1.Text+'%")';
kolay gelsin.
Soru Sorarken yazmaya Üşenmeyen Parmaklar Sorunun Çözüldükten Sonra Teşekkür etmeye de Üşenmesin.
-
- Üye
- Mesajlar: 10
- Kayıt: 20 Eyl 2014 01:35
Re: adoquery tarih sorgusu ve alan toplamı aldırma
öncelikle ilgin için teşekkür ederim. Yukarıda yazdığın şekilde düzelttim fakat aynı hata mesajı almaya devam ediyorum.
var
bakiye:real;
begin
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.Fields.Clear;
AdoQuery1.SQL.text := 'select fis_tarihi, fis_no, musteri_adi, sum(ezine_inek_alis) as bakiye from fisler ' + 'WHERE (fis_tarihi BETWEEN :@Tar1 and :@Tar2 and satici_adi Like"'+Combobox1.Text+'%")';
AdoQuery1.Parameters.ParamByName('@Tar1').Value := DateToStr(DateTimePicker1.Date);
AdoQuery1.Parameters.ParamByName('@Tar2').Value := DateToStr(DateTimePicker2.Date);
AdoQuery1.SQL.Add('ORDER BY Fis_tarihi DESC' );
AdoQuery1.Open;
Edit1.Text := FloatToStr(bakiye);
var
bakiye:real;
begin
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.Fields.Clear;
AdoQuery1.SQL.text := 'select fis_tarihi, fis_no, musteri_adi, sum(ezine_inek_alis) as bakiye from fisler ' + 'WHERE (fis_tarihi BETWEEN :@Tar1 and :@Tar2 and satici_adi Like"'+Combobox1.Text+'%")';
AdoQuery1.Parameters.ParamByName('@Tar1').Value := DateToStr(DateTimePicker1.Date);
AdoQuery1.Parameters.ParamByName('@Tar2').Value := DateToStr(DateTimePicker2.Date);
AdoQuery1.SQL.Add('ORDER BY Fis_tarihi DESC' );
AdoQuery1.Open;
Edit1.Text := FloatToStr(bakiye);
Re: adoquery tarih sorgusu ve alan toplamı aldırma
Düzeltmemişsin eğer dikkatli bir şekilde bakarsan en altta yine SQL.Add kullanmışsın ayrıca teksatırda yazacaksan + parametresini kullanama gerek yok + parametresini alt satıra geçip yazmaya devam etmek için kullanırsın birde en altta ORDER BY komutunu da SQL text in en sonuna koyss_mustafa yazdı:öncelikle ilgin için teşekkür ederim. Yukarıda yazdığın şekilde düzelttim fakat aynı hata mesajı almaya devam ediyorum.
var
bakiye:real;
begin
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.Fields.Clear;
AdoQuery1.SQL.text := 'select fis_tarihi, fis_no, musteri_adi, sum(ezine_inek_alis) as bakiye from fisler ' + 'WHERE (fis_tarihi BETWEEN :@Tar1 and :@Tar2 and satici_adi Like"'+Combobox1.Text+'%")';
AdoQuery1.Parameters.ParamByName('@Tar1').Value := DateToStr(DateTimePicker1.Date);
AdoQuery1.Parameters.ParamByName('@Tar2').Value := DateToStr(DateTimePicker2.Date);
AdoQuery1.SQL.Add('ORDER BY Fis_tarihi DESC' );
AdoQuery1.Open;
Edit1.Text := FloatToStr(bakiye);
yani kısacası
Kod: Tümünü seç
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.text := 'select fis_tarihi, fis_no, musteri_adi, sum(ezine_inek_alis) as bakiye from fisler WHERE fis_tarihi'
+' BETWEEN :Tar1 and :Tar2 and satici_adi Like'''+Combobox1.Text+'%'' ORDER BY Fis_tarihi DESC' ;
AdoQuery1.Parameters.ParamByName('Tar1').Value := DateToStr(DateTimePicker1.Date);
AdoQuery1.Parameters.ParamByName('Tar2').Value := DateToStr(DateTimePicker2.Date);
AdoQuery1.Open;
Soru Sorarken yazmaya Üşenmeyen Parmaklar Sorunun Çözüldükten Sonra Teşekkür etmeye de Üşenmesin.
-
- Üye
- Mesajlar: 10
- Kayıt: 20 Eyl 2014 01:35
Re: adoquery tarih sorgusu ve alan toplamı aldırma
söylediğin şeylerin hepsine dikkat ederek, karekter karekter kontrol edip yaptım hala hata kodu alıyorum. Nasıl oluyor anlamadım.
-
- Üye
- Mesajlar: 10
- Kayıt: 20 Eyl 2014 01:35
Re: adoquery tarih sorgusu ve alan toplamı aldırma
procedure Traporlar.BitBtn3Click(Sender: TObject);
var
bakiye:real;
begin
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.text := 'select fis_tarihi, fis_no, musteri_adi, sum(ezine_inek_alis) as bakiye from fisler WHERE fis_tarihi'
+' BETWEEN :Tar1 and :Tar2 and satici_adi Like'''+Combobox1.Text+'%'' ORDER BY Fis_tarihi DESC' ;
AdoQuery1.Parameters.ParamByName('Tar1').Value := DateToStr(DateTimePicker1.Date);
AdoQuery1.Parameters.ParamByName('Tar2').Value := DateToStr(DateTimePicker2.Date);
AdoQuery1.Open;
Edit1.Text := FloatToStr(bakiye);
end;
var
bakiye:real;
begin
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.text := 'select fis_tarihi, fis_no, musteri_adi, sum(ezine_inek_alis) as bakiye from fisler WHERE fis_tarihi'
+' BETWEEN :Tar1 and :Tar2 and satici_adi Like'''+Combobox1.Text+'%'' ORDER BY Fis_tarihi DESC' ;
AdoQuery1.Parameters.ParamByName('Tar1').Value := DateToStr(DateTimePicker1.Date);
AdoQuery1.Parameters.ParamByName('Tar2').Value := DateToStr(DateTimePicker2.Date);
AdoQuery1.Open;
Edit1.Text := FloatToStr(bakiye);
end;
-
- Üye
- Mesajlar: 10
- Kayıt: 20 Eyl 2014 01:35
Re: adoquery tarih sorgusu ve alan toplamı aldırma
Yardım lütfen...
Formu açtığımda veritabanındaki bilgiler dbgrid içinde görünüyor. Fakat sum komutunu kullandığımda bütün dbgrid siliniyor sadece sum komutundaki toplam değer görünüyor. Sanırım programın verdiği hatada bundan kaynaklanıyor. Bu konuda bilgisi olan varsa yardımcı olabilirse çok sevinirim. Takıldım kaldım burada.
Şimdiden ilgilenen arkadaşlara teşekkür ediyorum.
Formu açtığımda veritabanındaki bilgiler dbgrid içinde görünüyor. Fakat sum komutunu kullandığımda bütün dbgrid siliniyor sadece sum komutundaki toplam değer görünüyor. Sanırım programın verdiği hatada bundan kaynaklanıyor. Bu konuda bilgisi olan varsa yardımcı olabilirse çok sevinirim. Takıldım kaldım burada.
Şimdiden ilgilenen arkadaşlara teşekkür ediyorum.
-
- Üye
- Mesajlar: 10
- Kayıt: 20 Eyl 2014 01:35
Re: adoquery tarih sorgusu ve alan toplamı aldırma (çözüldü)
Sorun çözüldü. Diğer arkadaşlarada belki yararlı olur diye kodların son hali aşağıdaki şekildedir.
Kod iki tarih arasındaki satıcının, satışlarının toplamını aldırıyor.
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.Fields.Clear;
AdoQuery1.SQL.text:= ('select sum(ezine_inek_satis) as satis,sum(ezine_inek_alis) as alis from fisler where satici_adi Like'''+Combobox1.Text+'%'' and fis_tarihi BETWEEN :Tar1 and :Tar2') ;
AdoQuery1.Parameters.ParamByName('Tar1').Value := DateToStr(DateTimePicker1.Date);
AdoQuery1.Parameters.ParamByName('Tar2').Value := DateToStr(DateTimePicker2.Date);
AdoQuery1.Open;
herkese kolay gelsin.
Kod iki tarih arasındaki satıcının, satışlarının toplamını aldırıyor.
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.Fields.Clear;
AdoQuery1.SQL.text:= ('select sum(ezine_inek_satis) as satis,sum(ezine_inek_alis) as alis from fisler where satici_adi Like'''+Combobox1.Text+'%'' and fis_tarihi BETWEEN :Tar1 and :Tar2') ;
AdoQuery1.Parameters.ParamByName('Tar1').Value := DateToStr(DateTimePicker1.Date);
AdoQuery1.Parameters.ParamByName('Tar2').Value := DateToStr(DateTimePicker2.Date);
AdoQuery1.Open;
herkese kolay gelsin.