tekrarlı kayıtlar ve alanlarını toplama?

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

tekrarlı kayıtlar ve alanlarını toplama?

Mesaj gönderen y.kulac »

s.a.

paradox vt kullanıyorum. tabloda "personeladi" alanında aynı isimden 10 adet
aynı kişiye ait kayıt ve "ilacmiktari" alanında yine aynı kişinin karşılığı olan miktarlar yazılı.
bu şekilde değişik personellerden takrarlı kayıtlar ve karşılığı olan miktar kısmı var.

query ile sorgu yapmak istiyorum. bir personeli bir kere göstersin ama o personele ait
"ilacmiktari" kısmınıda aynı zamanda toplasın.

distinct ile kayıtları tekrarsız olarak listeleyebiliyorum ama "ilacmiktari" kısmını toplatamıyorum.

Kod: Tümünü seç

query1.close;
query1.sql.clear;
query1.sql.add('select distinct personeladi from ilackesinti');
query1.open;
neler önerirsiniz. iyi çalışmalar.
Kullanıcı avatarı
delphist
Üye
Mesajlar: 595
Kayıt: 05 Oca 2005 04:34

Mesaj gönderen delphist »

Kod: Tümünü seç

edit1.text:=ilac.query.fieldbyname('PERSONEL').asstring; ile yukarıdaki personel id sini veya neyse onu edit1 e al...bu şekilde

Daha sonra aşağıdaki query ile istedğini alabilirsin

 ilactopla.Close;
 ilactopla.SQL.Clear;
 ilactopla.SQL.Add('SELECT SUM(ILACADET)  FROM ILAC');
 ilactopla.SQL.Add('WHERE PERSONEL ='+QuotedStr(edit1.text)+'');
 ilactopla.open;
Bu şekilde alabilirsin bu bir yol tabi başka yollarda gerisi senin hayal gücüne kalmış
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

Mesaj gönderen y.kulac »

ben bütün tablonun içeriğini toplatama istiyorum. tabloda 61 adet personel kayıtlı
ve hepsi tekrarlı. sizin gösterdiğiniz yol bir personel için galiba.
Kullanıcı avatarı
delphist
Üye
Mesajlar: 595
Kayıt: 05 Oca 2005 04:34

Mesaj gönderen delphist »

Hocam ilk önce forumda arama yapmanı tavsiye ederim seninle ilgili bi konu olmasa bile o konuların içinde senin işine yarayacak veya işini yapacak bir çok yazı olabilir.

Kod: Tümünü seç

query1.close; 
query1.sql.clear; 
query1.sql.add('select distinct personeladi from ilackesinti'); 
query1.open;
while not query1.eof do 
begin 


edit1.text:=ilac.query.fieldbyname('PERSONEL').asstring; ile yukarıdaki personel id sini veya neyse onu edit1 e al...bu şekilde 

Daha sonra aşağıdaki query ile istedğini alabilirsin 

 ilactopla.Close; 
 ilactopla.SQL.Clear; 
 ilactopla.SQL.Add('SELECT SUM(ILACADET)  FROM ILAC'); 
 ilactopla.SQL.Add('WHERE PERSONEL ='+QuotedStr(edit1.text)+''); 
 ilactopla.open; 

  personalyaz.personel.asstring:=ilactopla.fieldbyname('PERSONEL').asstring;
personelyaz.ilacyaz.asstring:=ilactopa.fieldbyname('ILACADET').asinteger;
Hocam sytnax kontrol etmedim ama bu şekilde yapbilirsin

query1.next
end;
Cevapla