SQL de bir soru. biraz daha açık..

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
hacikisi
Üye
Mesajlar: 64
Kayıt: 24 Şub 2004 07:29
Konum: Gaziantep

SQL de bir soru. biraz daha açık..

Mesaj gönderen hacikisi »

Biraz daha sorumu açık yazmam gerektiğini düşünüyorum.
elimde bir paradoks table var. aynı tablodaki fieldlerden query table ile
giren ve çıkan malzeme toplamlarını grup grup aşağıdaki gibi alıyorum.

Giren MAlzeme toplamlarını aşağıdaki gibi alıyorum
select Girmalzemecinsi,Girmalzemeturu,sum(Girmalzemetoplami) from stokdb
group by Girmalzemecinsi,Girmalzemeturu

Çıkan malzeme toplamlarınıda aşağıdaki gibi alıyorum
select cikmalzemecinsi,cikmalzemeturu,sum(cikmalzemetoplami) from stokdb
group by cikmalzemecinsi,cikmalzemeturu

Soruma Gelince aradaki farkı nasıl bir sql ifadesi ile alabilirim. tşk.
Yani giren 5 adet Fklavye varsa, çıkanda 3 adet fklavye varsa
bana kalan 2 adet fklavye miktarını vermeli.
diğer kalanlarıda gruplandırarak aradaki farkı vermesini istiyorum. tşk.
En son hacikisi tarafından 23 Tem 2004 10:28 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Siz İman Etmedikçe Cennete Giremezsiniz. Birbirinizi Sevmedikçede İman Etmiş Olamazsınız.

Hz.Muhammed (S.A.V.)
Resim
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
aradaki farkı delphiden calculated alan tanımlayarak alaiblirsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

kodlarinizi code taglari icinde yazarsanzi cok daha anlasılır oluyorlar...

bildiginiz uzere kullandıgınız veritabanını da belirtmeniz de gerekiyor... Cevaplama acisindan onemli malum....

Soruyu da biraz acmanız gerekecek. Soyle ki bu iki sorgu da sonucta bir cok kayıt donecekler... Aradaki farki neye gore alacaksiniz...? aynı malzeme cinslerinin giren cikan farkını mı? aynı gun icindeki giren cikan farkını mı? vs...

Bir subquery ile yapımak mumkun olabilir.... Fakat tam istediginiz sonuc bu mudur ondan emin degilim acikcasi....

Kod: Tümünü seç

select S1.Girmalzemecinsi,S1.Girmalzemeturu,sum(S1.Girmalzemetoplami) ,
(select sum(s2.cikmalzemetoplami) 
from stokdb s12
where S2.cikmalzemecinsi=S1.Girmalzemecinsi and S2.cikmalzemeturu=S1.Girmalzemeturu )
from stokdb 
group by Girmalzemecinsi,Girmalzemeturu 
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Kullanıcı avatarı
selimr
Üye
Mesajlar: 556
Kayıt: 16 Eki 2003 02:07

Mesaj gönderen selimr »

select Girmalzemecinsi,Girmalzemeturu,sum(Girmalzemetoplami) girtop
from stokdb
group by Girmalzemecinsi,Girmalzemeturu

giristoplami:=stokdb.fieldbyname('girtop').asinteger;

select cikmalzemecinsi,cikmalzemeturu,sum(cikmalzemetoplami) ciktop
from stokdb
group by cikmalzemecinsi,cikmalzemeturu

fark:=giristoplami-stokdb.fieldbyname('ciktop').asinteger;
Cevapla