
SQL de Toplama ve Çıkarma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: SQL de Toplama ve Çıkarma
SimaWB kardeşim sana çok teşekkür ederim verdiğin bilgilerden dolayı çok değerli bilgiler bunlar. 

Re: SQL de Toplama ve Çıkarma
Arkadaşlar çok basit bir sorgu ilede çözemedim bir fikri olan varmı yardım edermisiniz?
TBLEMANET de EGCTIP VarChar(1) olarak tanımlı Allow Nulls işaretli artık oraya kadar baktım
ve DBGrid ve 1 tanede button koydum deniyorum ama yok
TBLEMANET de EGCTIP VarChar(1) olarak tanımlı Allow Nulls işaretli artık oraya kadar baktım
ve DBGrid ve 1 tanede button koydum deniyorum ama yok
Kod: Tümünü seç
Filitre.Close;
Filitre.Filter:='EGCTIP="C"';
Filitre.Filtered:=True;
Filitre.Open;
Kod: Tümünü seç
Filitre.SQL.Text:='SELECT SUM(ESTHAR_GCMIK) FROM TBLEMANET WHERE EGCTIP="C"';
Re: SQL de Toplama ve Çıkarma
Arkadaşlar bu şekilde sorgum düzgün çalışıyor.
Ben EGCTIP deki G ve C alanlarını ayrı ayrı toplatmak istiyorum bu sorguya nasıl eklerim? Ne yaptıysam olmadı YARDIM !!!
Kod: Tümünü seç
procedure TForm3.Button1Click(Sender: TObject);
begin
Filitre.Close;
Filitre.SQL.Clear;
Filitre.SQL.Text:='SELECT SUM(ESTHAR_GCMIK) FROM TBLEMANET WHERE ESTOK_KODU ='+ QuotedStr(Form4.DBEdit1.text);
Filitre.Open;
Re: SQL de Toplama ve Çıkarma
Daha önce de yazdım, birazcık oturup delphi, pascal veya sql kitapları okusan bu basit şeyleri kolayca halledersin. Körleme şekilde gidiyorsun, bu yazdıgın programın saglıklı çalışacagına da inanmıyorum.
İşini görecek sql şu olacak.
Bu kod egctip e göre gruplandırma yapıp, her grubun toplamını gösterecektir.
Fields[0] da egctip degeri G, C ve digerleri, Fields[1] de ise bu grupların toplamı gösterilecektir.
Gerekirse where ile toplamı yapılacak bölümü daraltabilirsin, sadece bir stogu topla vs gibi.
Kodu kendine göre uyarla.
İşini görecek sql şu olacak.
Kod: Tümünü seç
select EGCTIP, sum(ESTHAR_GCMIK) from TBLEMANET group by EGCTIP
Fields[0] da egctip degeri G, C ve digerleri, Fields[1] de ise bu grupların toplamı gösterilecektir.
Gerekirse where ile toplamı yapılacak bölümü daraltabilirsin, sadece bir stogu topla vs gibi.
Kodu kendine göre uyarla.
Re: SQL de Toplama ve Çıkarma
ADOQuery kullanıyorum ve databases program çalışınca aktif oluyor ben Fields alanı eklediğimde dataset i veremiyorum
Re: SQL de Toplama ve Çıkarma
Fields alan tanıladıktan sonra çalıştırdığımda Edit4 e C değerini yazıyor
bu kadar zormu bir sql cümlesiyle G ve C kayıtlarını süzüp toplatmak
Kod: Tümünü seç
Form3.Filitre.Close;
Form3.Filitre.SQL.Clear;
Form3.Filitre.SQL.Text:='select EGCTIP, sum(ESTHAR_GCMIK) from TBLEMANET group by EGCTIP';
Form3.Filitre.Open;
Form3.Edit4.Text:=Form3.Filitre.Fields[0].asstring;
Re: SQL de Toplama ve Çıkarma
bir de buraya bak...
bazen yükselmek için önce dibi görmek gerekir...
forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Re: SQL de Toplama ve Çıkarma
Kodları şu şekilde düzelt.
Kod: Tümünü seç
Form3.Filitre.Close;
Form3.Filitre.SQL.Clear;
Form3.Filitre.SQL.Text:='select EGCTIP, sum(ESTHAR_GCMIK) from TBLEMANET group by EGCTIP';
Form3.Filitre.Open;
Form3.Edit4.Text:=Form3.Filitre.Fields[1].asstring;
Form3.Filitre.Next;
Form3.Edit5.Text:=Form3.Filitre.Fields[1].asstring;
Re: SQL de Toplama ve Çıkarma
emin_as kardeşim Allah senden razı olsun , eline yüreğine sağlık toplam işlemi tamam dır ben sadece dBgrid e gelen tek cari için stok kodlarının giriş çıkışını toplatıyorum ve sorgunu bu şekilde değiştirdim ama yine hata aldım
Kod: Tümünü seç
Form3.Filitre.Close;
Form3.Filitre.SQL.Clear;
Form3.Filitre.SQL.Text:='select EGCTIP,ESTOK_KODU, sum(ESTHAR_GCMIK) from TBLEMANET group by EGCTIP';
Form3.Filitre.SQL.Text:='WHERE ESTOK_KODU ='+ QuotedStr(DBEdit1.text);
Form3.Filitre.Open;
Form3.Edit4.Text:=Form3.Filitre.Fields[1].asstring;
Form3.Filitre.Next;
Form3.Edit5.Text:=Form3.Filitre.Fields[1].asstring;
Re: SQL de Toplama ve Çıkarma
neyi niye nasıl yapacağını bilmeden, yaklaşık 10 gündür, 2-3 mesajda bir dile getirilenleri dikkate almadan, kopyala yapıştır düzenle olsun bitsin mantığıyla ilerlemeye çalıştığınız için hata almanız normal... temel sql bilgisi olmadan, netsise veritabanı bazında entegre program yazmaya çalışıyorsunuz ama her adım attığınızda da takılıyorsunuz.. işin ilginç yanı foruma 2005 de üye olmuş, 2008 e kadar forumda aktif olarak bulunmuş birisiniz, 2012 mayıstan beri de şuan üzerinde çalıştığınız programla ilgili baya bir soru sormuşsunuz ancak temel adımları hala aşamamış görünüyorsunuz... Allah kolaylık versin ne diyeyim...
en temel sql dökümanlarında bile "group by" bloğunun "where" kısmından sonra olması gerektiği yazar.
sorguyu sql server ortamında çalıştırmayı denemiş olsanız bu hatayı zaten farkedecektiniz...
ayrıca Form3.Filitre.SQL.Text e direk değer ataması yaptığınız için de select olan satır gümbürtüye gitmiş oluyor...
bunu da Form3.Filitre.Open; satırına break point koyup programı çalıştırsanız, o satıra geldiğinde de Form3.Filitre.SQL.Text üzerine mouse ile gelmiş olsanız görecektiniz....
en temel sql dökümanlarında bile "group by" bloğunun "where" kısmından sonra olması gerektiği yazar.
Kod: Tümünü seç
select SorguSonucuİstenenAlanlar from asilTablo
[gerekliyse diğer tablolarla joinler]
[gerekliyse where ile filtreleme]
[gerekliyse group by bloğu [gerekliyse having ile gruplama işlemi üzerinde filtreleme] ]
[gerekliyse order by bloğu]
ayrıca Form3.Filitre.SQL.Text e direk değer ataması yaptığınız için de select olan satır gümbürtüye gitmiş oluyor...
bunu da Form3.Filitre.Open; satırına break point koyup programı çalıştırsanız, o satıra geldiğinde de Form3.Filitre.SQL.Text üzerine mouse ile gelmiş olsanız görecektiniz....
bazen yükselmek için önce dibi görmek gerekir...
forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Re: SQL de Toplama ve Çıkarma
bu sorgu sql de çalıştı ve istediğim sonucu da aldım
ama delphi de kullandığımda istediğim sonuçu alamadım
Kod: Tümünü seç
select EGCTIP,ESTOK_KODU, sum(ESTHAR_GCMIK) from TBLEMANET group by EGCTIP,ESTOK_KODU
Kod: Tümünü seç
Form3.Filitre.Close;
Form3.Filitre.SQL.Clear;
Form3.Filitre.SQL.Text:='select EGCTIP,ESTOK_KODU, sum(ESTHAR_GCMIK) from TBLEMANET group by EGCTIP,ESTOK_KODU';
Form3.Filitre.Open;
Form3.Edit4.Text:=Form3.Filitre.Fields[1].asstring;
Form3.Filitre.Next;
Form3.Edit5.Text:=Form3.Filitre.Fields[1].asstring;
Re: SQL de Toplama ve Çıkarma
Yazmayayım diyorum ama dayanamadım!
İnatla, hâlâ aynı mantıkla devam ediyor!!!
Bu forumda 4 yüz küsur yorum yazmış/soru sormuş bir insan, en azından şu kodla
Edit4 ve Edit5'e aynı değeri attığının farkında değilse ben söyleyecek birşey bulamıyorum.
Sabırla cevap vermeye çalışan arkadaşlara da
İnatla, hâlâ aynı mantıkla devam ediyor!!!
Bu forumda 4 yüz küsur yorum yazmış/soru sormuş bir insan, en azından şu kodla
Kod: Tümünü seç
Form3.Edit4.Text:=Form3.Filitre.Fields[1].asstring;
Form3.Filitre.Next;
Form3.Edit5.Text:=Form3.Filitre.Fields[1].asstring;
Sabırla cevap vermeye çalışan arkadaşlara da

There's no place like 127.0.0.1
Re: SQL de Toplama ve Çıkarma
onun ben farkındayım simaWB ben sonuçu almaya çalışıyorum.Yine de teşekkür ediyorum yardımlarını es geçemem
Re: SQL de Toplama ve Çıkarma
Where yerine HAVING kulladım ama olmadı
Kod: Tümünü seç
Form3.Filitre.Close;
Form3.Filitre.SQL.Clear;
Form3.Filitre.SQL.Text:='select EGCTIP,ESTOK_KODU, sum(ESTHAR_GCMIK) from TBLEMANET group by EGCTIP HAVING ESTOK_KODU='+QuotedStr(Form4.DBEdit1.text);
Form3.Filitre.Open;
Form3.Edit4.Text:=Form3.Filitre.Fields[1].asstring;
Re: SQL de Toplama ve Çıkarma
Arkadaşlar bu şekilde halletim sorunumu sorunsuz çalışıyor.Sabırla yardımcı olanlara çok teşekkür ediyorum
Kod: Tümünü seç
Form3.Filitre.Close;
Form3.Filitre.SQL.Clear;
Form3.Filitre.SQL.Text:='select EGCTIP,ESTOK_KODU, sum(ESTHAR_GCMIK) from TBLEMANET group by EGCTIP,ESTOK_KODU HAVING ESTOK_KODU='+ QuotedStr(Form4.DBEdit1.text);
Form3.Filitre.Open;
Form3.Edit4.Text:=Form3.Filitre.Fields[2].asstring;
Form3.Filitre.Next;
Form3.Edit3.Text:=Form3.Filitre.Fields[2].asstring;