Sum.. Alan toplamı

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
meren
Üye
Mesajlar: 71
Kayıt: 20 Ara 2004 03:44

Sum.. Alan toplamı

Mesaj gönderen meren »

Merhaba arkada$lar,

$imdi benim $öyle bir rapor yapmam gerekiyorda.. takıldığım bir nokta var..

$imdi STK(STOK) STI(Stokİşlemleri)bunlar table'lar benim burada
mesela
ABC.001 firmasının BK-01(MalKodu) stok kodundaki Toplam Satış adedini toplatmam gerekiyor.. yani bir satırda GRIDDE $öyle çıkmasını istiom.. nasıl yapabilirim

CHK MAL KODU Toplam Adet Toplam Ciro
ABC BK-01 18500 18,000,000 şeklinde yapabilmek içine nasıl bir SQL cümlesi kullanabiliriz acaba..

ben $öyle yaptımda olmadı
Select STK.CHK, STI.MalKodu, STK.BirimMiktar, Sum(BirimMiktar) as Toplam Adet from STK, STI GROUP By STK.CHK, STI.MalKodu, STK.BirimMiktar

istediğimi alamıyorum.. hatayı nerede yapıyorum acaba?
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

yazdiginiz cumle beklediginizden cok daha buyuk rakamlar uretiyordur....
Zira kartezyen carpim yapmissiniz....
Yani select icinde where kısmını unutmuşsunuz. STK, STI tablolari arasindaki ilişkiyi ifade edecek bolumu..... Muhtemelen

Kod: Tümünü seç

where STK.STI.MalKodu=STI.STI.MalKodu
gibi bir kod olacak....

Bir de STK.BirimMiktar alanının group by ve where icinde olmasi da yanlis tabi zaten topladiginiz deger o... Bu alanı select icinden ve group by icinden kaldirmalisiniz... Sadece sum icinde olmali...
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Misafir

Mesaj gönderen Misafir »

istediğimi alamıyorum derken neyi kastediyorsun. sorgu hata mı veriyor. sonuç mu dönmüyor, yanlış sonuç mu dönüyor ?

ilk gözüme çarpan as den sonra ki Toplam Miktarı tırnak içine alıp denermisin.
meren
Üye
Mesajlar: 71
Kayıt: 20 Ara 2004 03:44

Mesaj gönderen meren »

problemim $u alamıyorum derken.. tek satırda çıkması gereken bilgiler..

ABC BK-01 5
ABC BK-01 4
ABC BK-01 3

gibi saçma saçma çıkıyor... yani tek satırda BK-01'LERİN toplamını almak istiyorum ben...
yukarıdaki örnekte

ABC BK-01 12

gibi
meren
Üye
Mesajlar: 71
Kayıt: 20 Ara 2004 03:44

Mesaj gönderen meren »

evet arkadar$lar $imdi istediğim sonuca $u anda ula$tım.. bana istediğim tarihteki istediğim grupun toplam satı$ adedini veriyor.. fakat birde benim bir satırda 2 SUM i$lemi yapmam gerekiyor... oda $u
TOPLAM MİKTAR'ı Toplam TUTAR'a böldürüp ortalama ciro almam gerekiyor nasıl yapabilirim..?

SELECT FINSAT330.STI.Chk, FINSAT330.STK.OzelKod, SUM(BirimMiktar) as toplam_miktar from FINSAT330.STI, FINSAT330.STK where FINSAT330.STK.MalKodu=FINSAT330.STI.MalKodu and FINSAT330.STK.OzelKod='KAPL' and FINSAT330.STI.Chk='ANK1.001' and FINSAT330.STI.Tarih>=38261 and FINSAT330.STI.Tarih<=38291 and FINSAT330.STI.IslemTip='1' GROUP BY FINSAT330.STK.OzelKod, FINSAT330.STI.Chk

bu $ekilde yazaran istediğim toplam tutara ula$tım.. ama birde toplam ciro almam gerekiyor..
SUM(Tutar/BirimMiktar) as toplam_Bakiye diyorum fakat istediğim sonuç çıkmıyor..
Cevapla