SQL de Toplama ve Çıkarma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

SQL de Toplama ve Çıkarma

Mesaj gönderen ozcank »

Arkadaşlar bir konuda yardıma ihtiyacım var şöyleki;
ERehber Query Tablosunda ESTHAR_GCMIK alanı var bu alanda G olanlar giriş C olanlar çıkış ben G ve C olanları toplatıp birbirinden çıkartmak ve kalan miktarı bulmak istiyorum bu şekilde yaptım hata da vermedi ama değeride alamadım. Bir fikir verebilirmisiniz yada bir örnek ?

Kod: Tümünü seç

procedure TForm3.Edit2Exit(Sender: TObject);
begin
ERehber.SQL.Add('Select sum(ESTHAR_GCMIK) as CIKTOP from ERehber where EGCTIP=C AND ESTOK_KODU='+ QuotedStr(DBEdit6.text));
ERehber.Open;
//-('SELECT SUM(ESTHAR_GCMIK) AS GIRTOP FROM ERehber where EGCTIP=C');
DBEdit10.Text:=FloatToStr(CIKTOP);
end;

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

Re: SQL de Toplama ve Çıkarma

Mesaj gönderen ozcank »

CIKTOP not found diyor.

Kod: Tümünü seç

procedure TForm3.Edit2Exit(Sender: TObject);
begin
ERehber.SQL.Add('Select sum(ESTHAR_GCMIK) AS CIKTOP from ERehber where EGCTIP=C AND ESTOK_KODU='+ QuotedStr(DBEdit6.text));
ERehber.Open;
//-('SELECT SUM(ESTHAR_GCMIK) AS GIRTOP FROM ERehber where EGCTIP=C');
DBEdit10.Text:=ERehber.FieldByName('CIKTOP').AsString;
end;
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: SQL de Toplama ve Çıkarma

Mesaj gönderen greenegitim »

yapmak istediğin ile kodların birbirini hiç tutmuyor çıkarma işlemi nerede? çıkarma yaptıktan sonraki sonuç nerede?
basit bir kod örneği umarım yardımcı olur.

Kod: Tümünü seç

select sum(borc) TBorc ,sum(alacak) TAlacak ,sum(borc)-sum(alacak) Bakiye from tablo
Mücadele güzelleştirir!
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: SQL de Toplama ve Çıkarma

Mesaj gönderen ozcank »

Arkadaşlar sql de değişiklik yapıyorum çalışıyor ama Delphi de "-" de hata veriyor bir el atarmısınız?



procedure TForm3.Edit2Exit(Sender: TObject);
begin
ERehber.SQL.Add ('select (select sum(ESTHAR_GCMIK) from ERehber where EGCTIP=C AND ESTOK_KODU='+ QuotedStr(DBEdit6.text))-('select sum(ESTHAR_GCMIK) from TBLEMANET where EGCTIP=G AND ESTOK_KODU='+ QuotedStr(DBEdit6.text)) AS CIKTOP;
ERehber.Open;
DBEdit10.Text:=ERehber.FieldByName('CIKTOP').AsString;
end;
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: SQL de Toplama ve Çıkarma

Mesaj gönderen greenegitim »

(DBEdit6.text))-('select sum.. burası hatalı diyor tavsiyem biraz sql çalışmanız internete ebook görsel eğitim v.s bir sürü materyal var hazır projeler de bir sürü var başlarda mantığı anlamakta baya faydalı oluyor bir kereden dalmayın böyle programlara yapıp bitirseniz bile en ufak bir hatada takılıp kalırsınız.
ve kendi kodlarınızı daha iyi anlamanız için formlara buttonlara name atayın dbedit6 yerine edt_stokkodu form3 yerine frm_takip edit2 yerine artık edit2 ne amaçla kullanılıyorsa ona ozel name vermeniz faydanıza olacaktır.
Mücadele güzelleştirir!
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: SQL de Toplama ve Çıkarma

Mesaj gönderen ozcank »

Peki bana yardımcı olurmusunuz? SQL de değişiklik yaptığımda istediğim sonucu alıyorum fakat delphide hata alıyorum.
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: SQL de Toplama ve Çıkarma

Mesaj gönderen greenegitim »

SQL de de istediğiniz sonucu alamamanız lazım bu mantıkla yapmış iseniz. sqlde ne yaptınız da istediğiniz sonucu verdi?
Mücadele güzelleştirir!
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: SQL de Toplama ve Çıkarma

Mesaj gönderen ozcank »

Evet bu mantıkla bu sorgu bu şekilde çalışıyor ama delphi de çalıştıramadım

select (select sum(ESTHAR_GCMIK) from TBLEMANET where EGCTIP='C')-(select sum(ESTHAR_GCMIK) from TBLEMANET where EGCTIP='G') AS CIKTOP
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: SQL de Toplama ve Çıkarma

Mesaj gönderen ozcank »

Delphi deki satırım bu AS CIKTOP da hata veriyor

ERehber.SQL.Add ('select sum(ESTHAR_GCMIK) from ERehber where EGCTIP=C AND ESTOK_KODU='+ QuotedStr(DBEdit6.text))-('select sum(ESTHAR_GCMIK) from ERehber where EGCTIP=G AND ESTOK_KODU='+ QuotedStr(DBEdit6.text)) AS CIKTOP;
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: SQL de Toplama ve Çıkarma

Mesaj gönderen greenegitim »

ERehber.SQL.Add ('select sum(ESTHAR_GCMIK) from ERehber where EGCTIP=C AND ESTOK_KODU='+ QuotedStr(DBEdit6.text))-('select sum(ESTHAR_GCMIK) from ERehber where EGCTIP=G AND ESTOK_KODU='+ QuotedStr(DBEdit6.text))+' AS CIKTOP');
Mücadele güzelleştirir!
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: SQL de Toplama ve Çıkarma

Mesaj gönderen ozcank »

Sorgu bu şekilde çalışıyor ama birleştiremezmiyim ?

Kod: Tümünü seç

procedure TForm4.DBGrid1DblClick(Sender: TObject);
begin
 if form3.DBEdit6.Text = ''  then
begin
 form3.DBEdit6.Text :=Form4.ESRehber.FieldByName('ESTOK_KODU').Text;
 form3.DBEdit7.Text :=Form4.ESRehber.FieldByName('ESTOK_ADI').Text;
Form3.ERehber.Close;
Form3.ERehber.SQL.Clear;
Form3.ERehber.SQL.Add('SELECT ESTOK_KODU,ECIK_KODU,ESTOK_ADI,ESTHAR_TARIH,EFISNO,EKALAN,EGCTIP,ESTHAR_GCMIK,ECIK_TARIH FROM TBLEMANET WHERE ECARI_KOD='+ QuotedStr(Form3.DBEdit1.text));
Form3.ERehber.Open;

Form3.ERehber.Close;
Form3.ERehber.SQL.Clear;
Form3.ERehber.SQL.Add('SELECT ESTOK_KODU,ECIK_KODU,ESTOK_ADI,ESTHAR_TARIH,EFISNO,EKALAN,EGCTIP,ESTHAR_GCMIK,ECIK_TARIH FROM TBLEMANET WHERE ESTOK_KODU='+ QuotedStr(Form4.DBEdit1.text));
Form3.ERehber.Open;

end;

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

Re: SQL de Toplama ve Çıkarma

Mesaj gönderen ozcank »

Bu kısmı 'EGCTIP="C' çıkardığımda sorgum çalışıyor ama ben EGCTIP alanında tipi C veya G olanları toplatmak istiyorum . Bu haliyle verdiği hata
invalik Column name 'C' Yardım edermisiniz?

Kod: Tümünü seç

Form3.Filitre.Close;
Form3.Filitre.SQL.Add('SELECT SUM(ESTHAR_GCMIK) FROM TBLEMANET  WHERE EGCTIP="C" AND ESTOK_KODU ='+ QuotedStr(Form4.DBEdit1.text));
Form3.Filitre.Open;
Form3.Edit4.Text:=Form3.Filitre.Fields[0].asstring;
C Çıkış
G Giriş

Aslında yapmak istediğim şu EGCTIP alanına C ve G kayıtları atıyorum ben bu C ve G kayıtların toplamını alıp Edit3 ve Edit4 yazdımak sonra Edit3 - Edit4 çıkartıp Edit5 e kalanı aktarmak amacım bu araştırdım ama bu işlemi tek sorguda yapabileceğim bir örnek bulamadım bildiğiniz projelerinizde böyle bir şey yaptıysanız banada gönderebilirmisiniz? Veya bu sorguyu düzeltebilirmisinz?
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: SQL de Toplama ve Çıkarma

Mesaj gönderen ozcank »

Sorguyu bu şekilde yaptım ama Edit3 ve Edit4 e attığı değer istediğim değer değil yardımcı olurmusunuz?

Kod: Tümünü seç

Form3.Filitre.Close;
Form3.Filitre.SQL.Add('SELECT SUM(ESTHAR_GCMIK) FROM TBLEMANET WHERE EGCTIP=:C AND ESTOK_KODU ='+ QuotedStr(Form4.DBEdit1.text));
Form3.Filitre.SQL.Add('SELECT SUM(ESTHAR_GCMIK) FROM TBLEMANET WHERE EGCTIP=:G AND ESTOK_KODU ='+ QuotedStr(Form4.DBEdit1.text));
Form3.Filitre.Open;
Form3.Edit4.Text:=Form3.Filitre.Fields[0].asstring;
Form3.Edit3.Text:=Form3.Filitre.Fields[0].asstring;
Form3.Edit5.Text:=(Form3.Edit4.Text)-(Form3.Edit3.Text);
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: SQL de Toplama ve Çıkarma

Mesaj gönderen SimaWB »

ozcank yazdı: Form3.Edit5.Text:=(Form3.Edit4.Text)-(Form3.Edit3.Text);
Öncelikle Delphi'de Edit içinde yazılı değeri sayısala çevirme ve sayısal ifadeyi Edit'e yazmayla ilgili çalışma/araştırma yapmalısınız.
There's no place like 127.0.0.1
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: SQL de Toplama ve Çıkarma

Mesaj gönderen ozcank »

Ben ne yaptıysam EGCTIP deki C veya G alanlarını filtre edemedim bu konuda lütfen yardım edin ne yaptıysam olmadı

Kod: Tümünü seç

Filitre.Close;
Filitre.SQL.Text:='SELECT SUM(ESTHAR_GCMIK) FROM TBLEMANET WHERE EGCTIP="C" AND ESTOK_KODU ='+ QuotedStr(Form4.DBEdit1.text);
Filitre.Open;
Cevapla