SQL de Toplam Alma !!!

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

SQL de Toplam Alma !!!

Mesaj gönderen ozcank »

Arkadaşlar ;

Bu şekilde SQL sorgulaması yapıyorum fakat birde Alt toplam aldırmak istiyorum DB deki alanlarım TOPLAM1,TOPLAM2,TOPLAM3,TOPLAM4 ve TOPLAM5 bu toplamları ;Label1.Caption,Lable2.Caption,Label3.Caption,Label4.Caption,Label5.Caption buraya aktarmak istiyorum nasıl ekleyeceğim ve yapacağım konusunda yardım ederseniz çok sevinirim.

procedure TForm28.Button1Click(Sender: TObject);
Begin
Query1.close;
Query1.Params[0].AsDateTime:=DateTimePicker1.DateTime;
Query1.Params[1].AsDateTime:=DateTimePicker2.DateTime;
Query1.Open;
Query1.refresh;
end;



SQL Setting kısmında ;
SELECT * FROM ROKAYIT
WHERE ROMONTAJTAR >=:ROFILKTAR AND ROMONTAJTAR<=:ROFSONTAR
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Ayrı bir Query de aşağıdaki gibi yapıp,

Kod: Tümünü seç

select sum(toplam1) as TOP1, sum(toplam2) as TOP2, sum(toplam3) as TOP3, sum(toplam4) as TOP4, sum(toplam5) as TOP5 FROM ROKAYIT
WHERE ROMONTAJTAR >=:ROFILKTAR AND ROMONTAJTAR<=:ROFSONTAR
Bunun adı Query2 ise;

Kod: Tümünü seç

Label1.Caption := IntToStr(Query2.FieldByName('TOP1').AsInteger); // tipine göre..
Label2.Caption := IntToStr(Query2.FieldByName('TOP2').AsInteger);
.... v.s.
Not: Kodlarını tag içinde yazarsan daha okunaklı olur.[/code]
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

bu işlemi hiç SQL Setting kısmına taşımadan Rapor Buttonu altında nasıl yapabilirim?
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

merhaba ,
Runtime Query nin SQL özelliğine erişip gerekli düzenlemeleri yapıp DAtaset i open metodyal açabilirsin yani,

Kod: Tümünü seç

procedure Button1.Click(Sender:Tobject);
var
SQlCumle:AnsiString;
begin
SQLCumle:='select sum(toplam1) as TOP1, sum(toplam2) as TOP2, Sum(toplam3) as TOP3, sum(toplam4) as TOP4, sum(toplam5) as TOP5 FROM ROKAYIT WHERE ROMONTAJTAR >=:ROFILKTAR AND ROMONTAJTAR<=:ROFSONTAR';
 with Query2 do
   begin
     close;
     sql.clear;
     sql.add(SQLCumle);
     Open;
   end;

Label1.Caption := IntToStr(Query2.FieldByName('TOP1').AsInteger); // tipine göre..
Label2.Caption := IntToStr(Query2.FieldByName('TOP2').AsInteger);
.... v.s.
end;
iyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

ROFILKTAR da hata veriyor
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
verdiği hatamesajı?
kolay gelsin
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

Senin kodu en son ne şekle getirdiğini görme imkanı sunarsan ve ne hatası veriyor onu yazarsan sorun dah net anlaşılır.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

Kod bu şekilde ve ROFILKTAR unknow diyor

procedure Button1.Click(Sender:Tobject);
var
SQlCumle:AnsiString;
begin
SQLCumle:='select sum(toplam1) as TOP1, sum(toplam2) as TOP2, Sum(toplam3) as TOP3, sum(toplam4) as TOP4, sum(toplam5) as TOP5 FROM ROKAYIT WHERE ROMONTAJTAR >=:ROFILKTAR AND ROMONTAJTAR<=:ROFSONTAR';
with Query2 do
begin
close;
sql.clear;
sql.add(SQLCumle);
Open;
end;

Label1.Caption := IntToStr(Query2.FieldByName('TOP1').AsInteger); // tipine göre..
Label2.Caption := IntToStr(Query2.FieldByName('TOP2').AsInteger);
.... v.s.
end;
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

Vermesi çok normal tabiki.yukarıdaki SQL de tarihler parametre olarak belirtilmiş ama sen parametreleri atamamışsın...

Kod: Tümünü seç

Query2.parambyname('ROLİLKTARIH')////////nerden tarih atayacaksan belirt.
Artı kodları nı içine yazarsan daha okunaklaı olur.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

code
procedure Button1.Click(Sender:Tobject);
var
SQlCumle:AnsiString;
begin
SQLCumle:='select sum(toplam1) as TOP1, sum(toplam2) as TOP2, Sum(toplam3) as TOP3, sum(toplam4) as TOP4, sum(toplam5) as TOP5 FROM ROKAYIT WHERE ROMONTAJTAR >=:ROFILKTAR AND ROMONTAJTAR<=:ROFSONTAR';
with Query2 do
begin
close;
sql.clear;
sql.add(SQLCumle);
Open;
Query.ParamByName('ROFILKTAR').AsDateTime:= DateTimePicker1.DateTime;
Query.ParamByName('ROFSONTAR').AsDateTime:=DateTimePicker2.DateTime;
end;
Label1.Caption := IntToStr(Query2.FieldByName('TOP1').AsInteger);
Label2.Caption := IntToStr(Query2.FieldByName('TOP2').AsInteger);
Label3.Caption := IntToStr(Query2.FieldByName('TOP3').AsInteger);
Label4.Caption := IntToStr(Query2.FieldByName('TOP4').AsInteger);
Label5.Caption := IntToStr(Query2.FieldByName('TOP5').AsInteger);
END;
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

kod:
code
code
procedure Button1.Click(Sender:Tobject);
var
SQlCumle:AnsiString;
begin
SQLCumle:='select sum(toplam1) as TOP1, sum(toplam2) as TOP2, Sum(toplam3) as TOP3, sum(toplam4) as TOP4, sum(toplam5) as TOP5 FROM ROKAYIT WHERE ROMONTAJTAR >=:ROFILKTAR AND ROMONTAJTAR<=:ROFSONTAR';
with Query2 do
begin
close;
sql.clear;
sql.add(SQLCumle);
Open;
Query.ParamByName('ROFILKTAR').AsDateTime:= DateTimePicker1.DateTime;
Query.ParamByName('ROFSONTAR').AsDateTime:=DateTimePicker2.DateTime;
end;
Label1.Caption := IntToStr(Query2.FieldByName('TOP1').AsInteger);
Label2.Caption := IntToStr(Query2.FieldByName('TOP2').AsInteger);
Label3.Caption := IntToStr(Query2.FieldByName('TOP3').AsInteger);
Label4.Caption := IntToStr(Query2.FieldByName('TOP4').AsInteger);
Label5.Caption := IntToStr(Query2.FieldByName('TOP5').AsInteger);
END;
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

Pardon;

kod:
code
procedure Button1.Click(Sender:Tobject);
var
SQlCumle:AnsiString;
begin
SQLCumle:='select sum(toplam1) as TOP1, sum(toplam2) as TOP2, Sum(toplam3) as TOP3, sum(toplam4) as TOP4, sum(toplam5) as TOP5 FROM ROKAYIT WHERE ROMONTAJTAR >=:ROFILKTAR AND ROMONTAJTAR<=:ROFSONTAR';
with Query1 do
begin
close;
sql.clear;
sql.add(SQLCumle);
Open;
Query1.ParamByName('ROFILKTAR').AsDateTime:= DateTimePicker1.DateTime;
Query1.ParamByName('ROFSONTAR').AsDateTime:=DateTimePicker2.DateTime;
end;
Label1.Caption := IntToStr(Query2.FieldByName('TOP1').AsInteger);
Label2.Caption := IntToStr(Query2.FieldByName('TOP2').AsInteger);
Label3.Caption := IntToStr(Query2.FieldByName('TOP3').AsInteger);
Label4.Caption := IntToStr(Query2.FieldByName('TOP4').AsInteger);
Label5.Caption := IntToStr(Query2.FieldByName('TOP5').AsInteger);
end;
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
parametrelere değerleri open den önce ata.
+
verdiği hata mesajını tam olarak yazarsan çok daha güzel olur.
çünkü rofilktar unknown tek başına yeteri kadar anlam ifade etmiyor.
ilk akla gelen rofilktar alanı yok ama alan aslında parametre :?: :?: :?: vs. vs.vs.

kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

Query1:Field 'ROFILKTAR' is of an unknown type
ve
Error Message 'Invalid use of keyword token select'
Token Select


Invalid use of keyword
Token:SELECT
Line number:2

bu hataları alıyorum
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

Arkadaşlar ;
Ben SQL de toplam aldırtamadım yardımlarınızı bekliyorum !!
Cevapla