Mssql Cıkarma İşlemi Boş Olan Satırlar
-
slm murıtler
SELECT Urunler.Urun_Barkod, Urunler.Urun_Aciklama, Urunler.Urun_Fiyat, Urunler.Urun_Vergi, Katagoriler.Katagori_Aciklama, Sum (Alislar_Islemler_Detay.Alim_Miktar) - Sum (Satislar_Islemler_Detay.Satim_Miktar) AS Stok FROM ((Urunler LEFT JOIN Satislar_Islemler_Detay ON Urunler.Urun_Barkod = Satislar_Islemler_Detay.Urun_Barkod) LEFT JOIN Alislar_Islemler_Detay ON Urunler.Urun_Barkod = Alislar_Islemler_Detay.Urun_Barkod) LEFT JOIN Katagoriler ON Urunler.Urun_Tur = Katagoriler.Katagori_Kodu group By Urunler.Urun_Barkod, Urunler.Urun_Aciklama, Urunler.Urun_Fiyat, Urunler.Urun_Vergi, Katagoriler.Katagori_Aciklama
boyle bır kodlla alıslar ve satıslardakı tablolarda bulunan stok mıktarını kontrol etmeye calısıyorum.Fakat kodum ıkı satırda dolu olursa calısıyor bossa bos deger gonderıyor.
buyuk ıhtımalle ınner joınlerde hata yapıyorum ama kafam basmadı.yardımcı olacaklara sımdıden tesekkurler
-
LEFT JOIN'leri birbirlerine joinleyip sonra ana tabloya joinlemişsin gibi geldi bana. Hepsini ana tabloya joinlemen gerekmiyor mu? Emin değilim ama bence şu şekilde olmalı:
SELECT Urunler.Urun_Barkod, Urunler.Urun_Aciklama, Urunler.Urun_Fiyat, Urunler.Urun_Vergi, Katagoriler.Katagori_Aciklama, Sum(Alislar_Islemler_Detay.Alim_Miktar) - Sum(Satislar_Islemler_Detay.Satim_Miktar) AS Stok FROM Urunler LEFT JOIN Satislar_Islemler_Detay ON Urunler.Urun_Barkod = Satislar_Islemler_Detay.Urun_Barkod LEFT JOIN Alislar_Islemler_Detay ON Urunler.Urun_Barkod = Alislar_Islemler_Detay.Urun_Barkod LEFT JOIN Katagoriler ON Urunler.Urun_Tur = Katagoriler.Katagori_Kodu GROUP BY Urunler.Urun_Barkod, Urunler.Urun_Aciklama, Urunler.Urun_Fiyat, Urunler.Urun_Vergi, Katagoriler.Katagori_Aciklama
-
http://www.w3schools.com/sql/sql_isnull.asp
bu işini görür hocam
-
ozdemyr bunu yazdı
LEFT JOIN'leri birbirlerine joinleyip sonra ana tabloya joinlemişsin gibi geldi bana. Hepsini ana tabloya joinlemen gerekmiyor mu? Emin değilim ama bence şu şekilde olmalı:
SELECT Urunler.Urun_Barkod, Urunler.Urun_Aciklama, Urunler.Urun_Fiyat, Urunler.Urun_Vergi, Katagoriler.Katagori_Aciklama, Sum(Alislar_Islemler_Detay.Alim_Miktar) - Sum(Satislar_Islemler_Detay.Satim_Miktar) AS Stok FROM Urunler LEFT JOIN Satislar_Islemler_Detay ON Urunler.Urun_Barkod = Satislar_Islemler_Detay.Urun_Barkod LEFT JOIN Alislar_Islemler_Detay ON Urunler.Urun_Barkod = Alislar_Islemler_Detay.Urun_Barkod LEFT JOIN Katagoriler ON Urunler.Urun_Tur = Katagoriler.Katagori_Kodu GROUP BY Urunler.Urun_Barkod, Urunler.Urun_Aciklama, Urunler.Urun_Fiyat, Urunler.Urun_Vergi, Katagoriler.Katagori_Aciklama
hocam bu kod calısmıyor
-
sLeymN bunu yazdı
http://www.w3schools.com/sql/sql_isnull.asp
bu işini görür hocam
valla hocam baktım ama gene aklım almadı
-
alım veya satım miktarı bilgisi bulamadığında null dönüyor, dolayısıyla (null - 2) as Stok gibi bir ifadenin sonucu da null dönüyor. bu durumda alım veya satım miktarı bilgisi yoksa 0 değeri vermen için isnull, ifnull, coalesce gibi bir fonksiyon kullanman gerek.
şuna bi göz at http://sqlfiddle.com/#!9/4b5f26/1 (sitedeki sorundan dolayı mysql kullandım ama mssql'de de çalışması lazım)
ozdemyr tarafından 05/Ağu/16 04:23 tarihinde düzenlenmiştir -
sLeymN bunu yazdı
http://www.w3schools.com/sql/sql_isnull.asp
bu işini görür hocam
hocam saolasın ayık kafayla bakınca bu kod ısımı gordu
IIF(ISNULL(UnitsOnOrder),0,UnitsOnOrder)
