DBGrid de Toplam Aldırma !!!

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

DBGrid de Toplam Aldırma !!!

Mesaj gönderen ozcank »

Arkadaşlar ben şurda takıldım yardımcı olurmusunuz? Yapmak istediğim şu;
DBGrid1 Ekranına bir müşteriye ait stok bilgilerini listeliyorum,
Tablomdada alanlar bu şekilde ve D7 , MSSQL kullanıyorum.

Stok Kodu - Stok Ismı - Giriş/Çıkış - Miktar
01 BULGUR G 10
01 BULGUR C 5
01 BULGUR C 3
02 PİRİNÇ G 20
02 PİRİNÇ C 10
02 PİRİNÇ C 5

Ben bu alanları tek satırda göstermek istiyorum
Stok Kodu - Stok Ismı - Miktar - Çıkan Mik. - Kalan Mik
01 BULGUR 10 8 2
02 PİRİNÇ 20 15 10

bu şekilde yardım edermisiniz? Nasıl yapabilirim.
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: DBGrid de Toplam Aldırma !!!

Mesaj gönderen unicorn64 »

:ara sum group by :ara

hatta tek sorguda halletmek için ayrıca :ara case :ara
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...

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

Re: DBGrid de Toplam Aldırma !!!

Mesaj gönderen ozcank »

unicorn64 nasıl birşey yazmalıyım bir örneğin varmı ?
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: DBGrid de Toplam Aldırma !!!

Mesaj gönderen unicorn64 »

mesajımı okuduktan sonra sum, group by, case neymiş ne işe yararmış nasıl kullanılırmış biraz olsun baktınız mı acaba..?
daha önceki mesajlarınızda yeterince hazır kod verildi sanırım...
biraz olsun araştırmaya öğrenmeye çalışsanız, sonrada uğraşsanız, işin mantığını öğreneceksiniz, ama siz günü kurtarma hazıra konma peşindesiniz...
örneğim var tabiki.. ama biraz araştırın önce...
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...

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

Re: DBGrid de Toplam Aldırma !!!

Mesaj gönderen ozcank »

Bu şekilde Application hatası veriyor
fields aktarı olmuyor.

adoquery1.close;
adoquery1.sql.clear;
adoquery1.SQL.Add('SELECT sum(ESTHAR_GCMIK) as toplam_cikis FROM TBLEMANET WHERE EGCTIP='+#39+'C'+#39+' and ESTOK_KODU='+#39+''+trim(ENetRapor.fields[0].asstring)+''+#39+'');
adoquery1.open;
showmessage (adoquery1.fields[0].asstring);
dbgrid1.fields[5].text:=adoquery1.fields[0].asstring;
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: DBGrid de Toplam Aldırma !!!

Mesaj gönderen unicorn64 »

ENetRapor sorgusunda ne var, sorgusu nasıl, sorgu aktif mi...
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...

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

Re: DBGrid de Toplam Aldırma !!!

Mesaj gönderen ozcank »

Bu şekilde çözüme ulaştım.

Kod: Tümünü seç

adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('SELECT ESTOK_KODU,ESTOK_ADI,');
adoquery1.sql.add('SUM(CASE WHEN EGCTIP='+#39+'G'+#39+' then ESTHAR_GCMIK else 0 end) [Giren Mik.],');
adoquery1.sql.add('SUM(CASE WHEN EGCTIP='+#39+'C'+#39+' then ESTHAR_GCMIK else 0 end) [Çıkan Mik.],');
adoquery1.sql.add('SUM((CASE WHEN EGCTIP='+#39+'G'+#39+' then ESTHAR_GCMIK else 0 end)-(CASE WHEN EGCTIP='+#39+'C'+#39+' then ESTHAR_GCMIK else 0 end)) [Kalan Mik.] ');
adoquery1.sql.add('FROM TBLEMANET where ECARI_KOD='+#39+''+edit1.text+''+#39+'');
adoquery1.sql.add('GROUP BY ESTOK_KODU,ESTOK_ADI');
adoquery1.open;
end;//prosedür

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

Re: DBGrid de Toplam Aldırma !!!

Mesaj gönderen ozcank »

Arkadaşlar bu satırda hata veriyor bir türlü çözemedim yardım edermisiniz?

Form3.Filitre.sql.add('FROM TBLEMANET where ECARI_KOD='+#39+''+Form3.DBEdit1.text+''+#39+'') and ('ESTOK_KODU='+#39+''+Form3.DBEdit6.text+''+#39+'');

[Error] EMANETSTOKREHBER.pas(92): Incompatible types: 'String' and 'Integer'
Cevapla