S.A Arkadaşlar
stok bilgilerini kaydettiğim "skart" isminde bir tablom var. ve araclardaki ürünleri kaydettiğim "aractaki" ismindede ikinci bir tablom var.
ben elimde hangi üründen toplam ne kadar olduğunu bulmak için şu sorguyu yazdığımda
select s.cinsi,s.top_miktar+(select sum(a.top_miktar) from aractaki a where a.barkod=s.barkod) as toplam
from skart s order by s.cinsi
eğer herhangi bir ürün araçta yok ise sorgu null değer döndürüyor. ve null değer ile toplama yapıldığında sonuc yine null çıkıyor. araçta olmayan ürünlerin toplamını alamıyorum. farklı yöntemler denediğim halde sonuca ulaşamadım. emim ki bu soru daha öncedende sorulmuştur ama bulamadım. kusura bakmayın hakkınızı helal edin.
Şimdiden yardımlarınız için teşekkürler.
Sum() sorgusu sunucu null dönmesin
COALESCE fonksiyonunu kullanın.
ÖRNEK:
ÖRNEK:
Kod: Tümünü seç
SELECT
COALESCE(SUM(giris), 0) AS GIRIS,
COALESCE(SUM(cikis), 0) AS CIKIS,
COALESCE(SUM(giris), 0) - COALESCE(SUM(cikis), 0) AS FARK
FROM stokislem
Olayı sizin kodunuza uygulamaya kalkıştım ama hangisi doğru çalışıyor diye deneyemedim.
iki farklı kod çıktı,
birinde sum önce birinde COALESCE önce,
siz dener doğrusunu yazarsınız.
1.kod:
2.kod:
saygılarımla
iki farklı kod çıktı,
birinde sum önce birinde COALESCE önce,
siz dener doğrusunu yazarsınız.
1.kod:
Kod: Tümünü seç
select s.cinsi,s.top_miktar+(select COALESCE(SUM(a.top_miktar), 0)) from aractaki a where a.barkod=s.barkod) as toplam
from skart s order by s.cinsi
Kod: Tümünü seç
select s.cinsi,s.top_miktar+(select SUM(COALESCE(a.top_miktar), 0)) from aractaki a where a.barkod=s.barkod) as toplam
from skart s order by s.cinsi
ilgi ve alaknızdan dolayı çok teşekkür ederim.
formda COALESCE ye rasatlamıştım ama uygulayamamıştım. muhtemelen interbase 6.0 kullandığım için. firebird 1.5 de sorunsuz çalıştı.
Bir şey daha sormak istiyorum normalde interbase kurduğumuz zaman interbase ile birlikte ibconsole da geliyor. firebird kurulumuda bezer hiç bir şey yok bildiğim kadarı ile. firebird ile kullanabileceğim iyi bir arabirim tavsiye edebilirmisiniz?
formda COALESCE ye rasatlamıştım ama uygulayamamıştım. muhtemelen interbase 6.0 kullandığım için. firebird 1.5 de sorunsuz çalıştı.
Bir şey daha sormak istiyorum normalde interbase kurduğumuz zaman interbase ile birlikte ibconsole da geliyor. firebird kurulumuda bezer hiç bir şey yok bildiğim kadarı ile. firebird ile kullanabileceğim iyi bir arabirim tavsiye edebilirmisiniz?
Firebird\bin dizini içinde isql komut satırı arayüzü var. Zor gelebilir. O yüzden genelde IBExpert (http://www.ibexpert.com dan ücretsiz sürümünü indirip kullanabilirsin). Yada BDWorkBench, EMS Interbase & Firebird Manager vb diğer arayüzleri kullanabilirsin. Bu tür yazılımların bir çoğu lisans istemekte 

Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!