sql de sum komutu
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
sql de sum komutu
Merhaba arkadaslar
if edit4.Text <> '' then
Result := AddResult(Result) + ' Lot_No LIKE ''' + edit4.Text+ '%''';
boyle bir sql cumlesine sum komutunu nasıl ekleye bilirim
sum ile gramaj alanının toplamını alacagım.
if edit4.Text <> '' then
Result := AddResult(Result) + ' Lot_No LIKE ''' + edit4.Text+ '%''';
boyle bir sql cumlesine sum komutunu nasıl ekleye bilirim
sum ile gramaj alanının toplamını alacagım.
Evt haklısınız
yapmak istedigim su veritabanımda birden fazla alana gore sorgu yapıyorum
ornegin
tarih ,vardiya,gurup,makine no gibi daha birkac alana gore sorgulama yapıyorum
sorgumu hazırlamıs oldugum formda hahangi kritere ait edit in icerisi doluysa onuda sorguma ekleyerak yapıyorum
ornegin
makine no=1
vardiyası =A dersem bunları suzerek getiriyor son yapmak istedigim se her suzme sonunda gramaj degerlerinin toplamını bana vermesi
sum kullandıgım zaman grid ici bosalıyor sadce toplam degeri veriyor.
sizce ne yapmam gerek.
yapmak istedigim su veritabanımda birden fazla alana gore sorgu yapıyorum
ornegin
tarih ,vardiya,gurup,makine no gibi daha birkac alana gore sorgulama yapıyorum
sorgumu hazırlamıs oldugum formda hahangi kritere ait edit in icerisi doluysa onuda sorguma ekleyerak yapıyorum
ornegin
makine no=1
vardiyası =A dersem bunları suzerek getiriyor son yapmak istedigim se her suzme sonunda gramaj degerlerinin toplamını bana vermesi
sum kullandıgım zaman grid ici bosalıyor sadce toplam degeri veriyor.
sizce ne yapmam gerek.
Merhaba,
soru başlığınızda SQL ile sum toplamı aldırmak demişsiniz bence bu soruyu Veri tabanı formuna sormanız gerikir.
Bu konu forumda fazlasıyla konuşuldu
Sum
Arama yaparsanız sonuca daha kısa sürede ulaşacağınızı düşünüyorum.
Kolay gelsin.
Not: Yukarıdaki sql cümlesimi hiçbişey anlayamadım
soru başlığınızda SQL ile sum toplamı aldırmak demişsiniz bence bu soruyu Veri tabanı formuna sormanız gerikir.
Bu konu forumda fazlasıyla konuşuldu

Arama yaparsanız sonuca daha kısa sürede ulaşacağınızı düşünüyorum.
Kolay gelsin.
Not: Yukarıdaki sql cümlesimi hiçbişey anlayamadım
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
_________________
Bu başlık altında devam etmek fayda var sanırım.
Bence yapmak istediğiniz en azından örnekler yazarak burada açıklarsanız sorunuza hemen cevap bulunacaktır.
Ne yapmak istediğiniz lütfen açıklayıcı şekilde yazınız. Son olarakta bu işlem için kullandığınız sql kodunu yazınız.
Kolay gelsin.
Bence yapmak istediğiniz en azından örnekler yazarak burada açıklarsanız sorunuza hemen cevap bulunacaktır.
Ne yapmak istediğiniz lütfen açıklayıcı şekilde yazınız. Son olarakta bu işlem için kullandığınız sql kodunu yazınız.
Kolay gelsin.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
_________________
function TFRMListe.GetSQLFilter: String;
function AddResult(SQL: String): String;
begin
if SQL <> '' then
Result := SQL + ' AND ';
end;
var
a: Integer;
ara:string;
begin
Result := '';
if edit4.Text <> '' then
Result := AddResult(Result) + ' Lot_No LIKE ''' + edit4.Text+ '%''';
//**tarih aralıgını bu fonksiyona ekleyemedim
// if DateTimeToStr(QryTarih.DateTime) <> '' then
// Result := AddResult(Result) + ' Tarih = ' + DateTimeToStr(QryTarih.DateTime);
if edit3.Text <> '' then
Result := AddResult(Result) + ' Sicil_No LIKE ''' + edit3.Text + '%''';
if edit5.Text <> '' then
Result := AddResult(Result) + ' Makina_No LIKE ''' + Edit5.Text + '%''';
if edit6.Text<> '' then
Result :=AddResult(Result) + ' Gurup like ''' + edit6.text + '%''';
end;
**********************************************************
SORGULAMA YAPTIGIM BUTONUN CLİGİNDE İSE ASAGIDAKİ KOD VAR
procedure TFRMListe.araClick(Sender: TObject);
begin
if ((edit1.Text<>'' )and(edit2.Text<>'')) then
begin
dm.QTartim.Close;
dm.QTartim.SQL.Clear;
dm.QTartim.SQL.Add('select * from TBL_Tartim where tarih between '''+DateTimeToStr(dt1.DateTime)+''' and '''+DateTimeToStr(dt2.DateTime)+'''');
dm.QTartim.Open;
end
else
begin
dm.QTartim.Close;
dm.QTartim.SQL.Clear;
dm.QTartim.SQL.Add('select * from TBL_Tartim');
dm.QTartim.Open;
end ;
GlobalFilter := GetSQLFilter;
if GlobalFilter <> '' then
begin
dm.QTartim.Filter := GlobalFilter;
dm.QTartim.Filtered := True;
end
else
begin
dm.QTartim.filtered := False;
end
end;
Kodlamam bu sekilde sorgu duzgun olarak calısıyor qtartima baglı gridimde gramaj alanım var her sorgu sonunda toplam gramajı bulmam gerek bunu nereye ne sekilde yazmam gerek sum komutunu sadece tek basına kullanabiliyorum
function AddResult(SQL: String): String;
begin
if SQL <> '' then
Result := SQL + ' AND ';
end;
var
a: Integer;
ara:string;
begin
Result := '';
if edit4.Text <> '' then
Result := AddResult(Result) + ' Lot_No LIKE ''' + edit4.Text+ '%''';
//**tarih aralıgını bu fonksiyona ekleyemedim
// if DateTimeToStr(QryTarih.DateTime) <> '' then
// Result := AddResult(Result) + ' Tarih = ' + DateTimeToStr(QryTarih.DateTime);
if edit3.Text <> '' then
Result := AddResult(Result) + ' Sicil_No LIKE ''' + edit3.Text + '%''';
if edit5.Text <> '' then
Result := AddResult(Result) + ' Makina_No LIKE ''' + Edit5.Text + '%''';
if edit6.Text<> '' then
Result :=AddResult(Result) + ' Gurup like ''' + edit6.text + '%''';
end;
**********************************************************
SORGULAMA YAPTIGIM BUTONUN CLİGİNDE İSE ASAGIDAKİ KOD VAR
procedure TFRMListe.araClick(Sender: TObject);
begin
if ((edit1.Text<>'' )and(edit2.Text<>'')) then
begin
dm.QTartim.Close;
dm.QTartim.SQL.Clear;
dm.QTartim.SQL.Add('select * from TBL_Tartim where tarih between '''+DateTimeToStr(dt1.DateTime)+''' and '''+DateTimeToStr(dt2.DateTime)+'''');
dm.QTartim.Open;
end
else
begin
dm.QTartim.Close;
dm.QTartim.SQL.Clear;
dm.QTartim.SQL.Add('select * from TBL_Tartim');
dm.QTartim.Open;
end ;
GlobalFilter := GetSQLFilter;
if GlobalFilter <> '' then
begin
dm.QTartim.Filter := GlobalFilter;
dm.QTartim.Filtered := True;
end
else
begin
dm.QTartim.filtered := False;
end
end;
Kodlamam bu sekilde sorgu duzgun olarak calısıyor qtartima baglı gridimde gramaj alanım var her sorgu sonunda toplam gramajı bulmam gerek bunu nereye ne sekilde yazmam gerek sum komutunu sadece tek basına kullanabiliyorum
Merhaba,
Sorgunuz düzgün olarak çalışıyorsa sadece toplam almak için
Böyle yaparsanız toplatmış olacaksınız.
Yanlız dikkat etmeniz gerekn bir husus var.
sum işleminde sonuç set satır olarak döner bu sonucu nereye yazdırmak istiyorsanız oradan aldırmalısınız.
Saygılarımla
Kolay gelsin.
Sorgunuz düzgün olarak çalışıyorsa sadece toplam almak için
Kod: Tümünü seç
dm.QTartim.Close;
dm.QTartim.SQL.Clear;
dm.QTartim.SQL.Add('select sum(Toplatacağınız alan),digeralan1,digeralan2 from TBL_Tartim Group by sectigimiz alanlar');
dm.QTartim.Open;
end ;
Yanlız dikkat etmeniz gerekn bir husus var.

Saygılarımla
Kolay gelsin.
En son pro_imaj tarafından 24 Eyl 2005 11:51 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
_________________
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
Merhaba.
Sum ile toplam almak istediğiniz alanları yazdıktan sonra akabinde view etmek istediğiniz diğer alanları ayrıca sorgu sonunda gruplamanız yani group by ifadesi ile belirtmeniz gerekir..Ek olarak kodlama konusunda ilerde sıkıntı yaşamamak için kod standardı uygulamanızı tavsiye ederim.
Kolay gelsin..
Sum ile toplam almak istediğiniz alanları yazdıktan sonra akabinde view etmek istediğiniz diğer alanları ayrıca sorgu sonunda gruplamanız yani group by ifadesi ile belirtmeniz gerekir..Ek olarak kodlama konusunda ilerde sıkıntı yaşamamak için kod standardı uygulamanızı tavsiye ederim.
Kolay gelsin..
selam
aslında bunu paremetreler ile çok rahat bir şekilde halledebilirsiniz.gerçi forumdada sizin örneğinize benzer örnekler mevcut biraz incelemeniz lazımdı aslında
anladığım kadarı ile
siz
her and ile
kontrol yapıp yani filtreleme yapıp sonucu mesela atıyom edit bileşeninde göstermek veay dbeditte.
filtreleme olayına gelince size belki değişik bir fikir vermesi babından yazıyorum birde şu şekildede aslında yapabilirsiniz.
Query nin Sql satırına
bu kendi proğramımdan bir örnek dikkat edilirse bu sql satırında
3 tane fielde göre raporlama örneği tabiiki
burada tarih1,tarih2,kod1,kod2,ad1,ad2 bunların params özelliğindende tipi belirtilmeli
daha sonra siz bu şekilde hem
bir filtreleme alırsınız
hemde filtreleme yaptığınız alanın toplamında bulmuş olursunuz.Kolay gelsin.
aslında bunu paremetreler ile çok rahat bir şekilde halledebilirsiniz.gerçi forumdada sizin örneğinize benzer örnekler mevcut biraz incelemeniz lazımdı aslında
anladığım kadarı ile
siz
her and ile
kontrol yapıp yani filtreleme yapıp sonucu mesela atıyom edit bileşeninde göstermek veay dbeditte.
filtreleme olayına gelince size belki değişik bir fikir vermesi babından yazıyorum birde şu şekildede aslında yapabilirsiniz.
Query nin Sql satırına
Kod: Tümünü seç
select sum(toplam) from cislem where cislem.tarih between :tarih1 and :tarih2 and cislem.CKOD
between :kod1 and :kod2 and cislem.ADSOYAD between :ad1 and ad2
order by tarih
3 tane fielde göre raporlama örneği tabiiki
burada tarih1,tarih2,kod1,kod2,ad1,ad2 bunların params özelliğindende tipi belirtilmeli
daha sonra siz bu şekilde hem
bir filtreleme alırsınız
hemde filtreleme yaptığınız alanın toplamında bulmuş olursunuz.Kolay gelsin.
Merhabalar Arkadaslar
Konuyu baya bi uzattım ama pro_imaj arkadasımız demis ki "sum işleminde sonuç set satır olarak döner bu sonucu nereye yazdırmak istiyorsanız oradan aldırmalısınız." bunu biraz daha acabilirmisiniz.
ben bu kodu yazdıgımda
begin
dm.QTartim.Close;
dm.QTartim.SQL.Clear;
dm.QTartim.SQL.Add('select sum(Gramaj) from TBL_Tartim Group by sicil_no,lot_no');
dm.QTartim.Open;
EDit7.Text:=dm.QTartim.Fields[0].Value;
end ;
bu sekilde yazdıgımda sadece toplamı edite yazıyor gride kayıt gelmiyor
Konuyu baya bi uzattım ama pro_imaj arkadasımız demis ki "sum işleminde sonuç set satır olarak döner bu sonucu nereye yazdırmak istiyorsanız oradan aldırmalısınız." bunu biraz daha acabilirmisiniz.
ben bu kodu yazdıgımda
begin
dm.QTartim.Close;
dm.QTartim.SQL.Clear;
dm.QTartim.SQL.Add('select sum(Gramaj) from TBL_Tartim Group by sicil_no,lot_no');
dm.QTartim.Open;
EDit7.Text:=dm.QTartim.Fields[0].Value;
end ;
bu sekilde yazdıgımda sadece toplamı edite yazıyor gride kayıt gelmiyor
selam
gride kayıt gelmez
bu kodunuzu yazdunzı
ve bundan sonra da
tekraryazın kolay gelsin
gride kayıt gelmez
Kod: Tümünü seç
dm.QTartim.Close;
dm.QTartim.SQL.Clear;
dm.QTartim.SQL.Add('select sum(Gramaj) from TBL_Tartim Group by sicil_no,lot_no');
dm.QTartim.Open;
EDit7.Text:=dm.QTartim.Fields[0].Value;
ve bundan sonra da
tekrar
Kod: Tümünü seç
dm.QTartim.Close;
dm.QTartim.SQL.Clear;
dm.QTartim.SQL.Add('select *) from TBL_Tartim');
dm.QTartim.Open;