sql sorgusu cıkışı 2 ile çarpıyor

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

sql sorgusu cıkışı 2 ile çarpıyor

Mesaj gönderen erdogan_ozkaya »

Arkadaşlar

aşağıdaki kod çalışıyor fakat eğer 2 tane çıkmış ise 4 yazıyor neden olabilir acaba ?

Kod: Tümünü seç

SELECT   
 SKT.STOK_ADI,
 SKT.CALISILAN_FIRMA,
 SKT.STOK_KIMLIK,
 SKT.BARKOD,  
 SKT.ALIS_FIYATI, 
 SKT.ALIS_PARA_BIRIMI, 
 SKT.SATIS_FIYATI, 
 SKT.SATIS_PARA_BIRIMI, 
    
 

 ISNULL(SUM(CKN.BIRIM_MIKTARI),0) CIKAN,
 ISNULL(SUM(GRN.BIRIM_MIKTARI),0) GIREN,   
(ISNULL(SUM(GRN.BIRIM_MIKTARI),0)-
ISNULL(SUM(CKN.BIRIM_MIKTARI),0)) DEPO_KALAN   
  

 FROM STOK_KARTLARI SKT
 
 LEFT JOIN STOK_HAREKETLERI_DETAY GRN ON GRN.BARKOD=SKT.BARKOD AND GRN.FIS_TIPI = 'Alış Faturası' 
 LEFT JOIN STOK_HAREKETLERI_DETAY CKN ON CKN.BARKOD=SKT.BARKOD AND CKN.FIS_TIPI = 'Satış Faturası' 
 
 
 where SKT.BARKOD='2000190350037' 

teşekkürler
diseqc
Üye
Mesajlar: 44
Kayıt: 21 May 2009 04:03

Re: sql sorgusu cıkışı 2 ile çarpıyor

Mesaj gönderen diseqc »

Sutunlarin birinde 2 farkli deger geliyor onlarida yeni satirda alt alta gösterir sorguyu calistir verileri kontrol et farkli gelen sütünü ya cikar yada grup fonksiyonuna dahil etmen gerek umarim anlatabilmisimdir
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: sql sorgusu cıkışı 2 ile çarpıyor

Mesaj gönderen erdogan_ozkaya »

Hocam cevabınız için teşekkürler, tek bir tablo var bir çok stok kartı var ve giriş çıkışlar sadece bir kaç kartta yapıyor 2 ile çarpıyor :(

4 hareket var 2 alış 2 satış. Karışacak kadar çok hareket te yok ama.

sorgunun farklı bir hali olabilirmi örnek varmı acaba ?

Mükerrer barkod olmadığı için karışmasıda mümkün değil.

Teşekkürler
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: sql sorgusu cıkışı 2 ile çarpıyor

Mesaj gönderen erdogan_ozkaya »

Güncel Konu.. :(
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

çözüldü: Re: sql sorgusu cıkışı 2 ile çarpıyor

Mesaj gönderen erdogan_ozkaya »

Merhaba,

aşağıdaki kod ile çözüldü işine yarayan arkadaş kullanabilir.

Kod: Tümünü seç

SELECT SKT.STOK_ADI, SKT.CALISILAN_FIRMA, 
 SKT.BARKOD, SKT.ALIS_FIYATI, SKT.ALIS_PARA_BIRIMI, SKT.SATIS_FIYATI, 
 SKT.SATIS_PARA_BIRIMI,  


 
ISNULL(TBL.GIRIS,0) GIREN,
ISNULL(TBL.CIKIS,0) CIKAN,

(ISNULL(TBL.GIRIS,0) - ISNULL(TBL.CIKIS,0)) KALAN

FROM STOK_KARTLARI SKT LEFT JOIN  
( select  SHD.BARKOD,  SUM(CASE WHEN SHD.FIS_TIPI='Alış Faturası' AND 
SHD.BARKOD ='2000190350037'  AND SHD.DEPO_KODU ='2000190350037'  AND
SHD.CIKIS_TARIHI>='2012-03-08 00:00:00.000' and SHD.CIKIS_TARIHI<='2019-03-08 00:00:00.000'
THEN SHD.BIRIM_MIKTARI ELSE 0 END) GIRIS, 


SUM(CASE WHEN   (SHD.FIS_TIPI = 'Satış Faturası')  or (SHD.FIS_TIPI = 'Firma Zimmet' )   or 
(SHD.FIS_TIPI = 'Personel Zimmet') or (SHD.FIS_TIPI = 'Proje Zimmet' ) AND SHD.BARKOD ='2000190350037' AND

SHD.CIKIS_TARIHI>='2012-03-08 00:00:00.000' and SHD.CIKIS_TARIHI<='2019-03-08 00:00:00.000'


THEN SHD.BIRIM_MIKTARI ELSE 0 END) CIKIS 



FROM STOK_HAREKETLERI_DETAY SHD group by SHD.BARKOD ) TBL ON TBL.BARKOD=SKT.BARKOD 


order by SKT.STOK_ADI  ASC  
 
opordace
Üye
Mesajlar: 15
Kayıt: 28 Nis 2015 02:44

Re: çözüldü: Re: sql sorgusu cıkışı 2 ile çarpıyor

Mesaj gönderen opordace »

erdogan_ozkaya yazdı: 21 Mar 2016 04:38 Merhaba,

aşağıdaki kod ile çözüldü işine yarayan arkadaş kullanabilir.

Kod: Tümünü seç

SELECT SKT.STOK_ADI, SKT.CALISILAN_FIRMA, 
 SKT.BARKOD, SKT.ALIS_FIYATI, SKT.ALIS_PARA_BIRIMI, SKT.SATIS_FIYATI, 
 SKT.SATIS_PARA_BIRIMI,  


 
ISNULL(TBL.GIRIS,0) GIREN,
ISNULL(TBL.CIKIS,0) CIKAN,

(ISNULL(TBL.GIRIS,0) - ISNULL(TBL.CIKIS,0)) KALAN

FROM STOK_KARTLARI SKT LEFT JOIN  
( select  SHD.BARKOD,  SUM(CASE WHEN SHD.FIS_TIPI='Alış Faturası' AND 
SHD.BARKOD ='2000190350037'  AND SHD.DEPO_KODU ='2000190350037'  AND
SHD.CIKIS_TARIHI>='2012-03-08 00:00:00.000' and SHD.CIKIS_TARIHI<='2019-03-08 00:00:00.000'
THEN SHD.BIRIM_MIKTARI ELSE 0 END) GIRIS, 


SUM(CASE WHEN   (SHD.FIS_TIPI = 'Satış Faturası')  or (SHD.FIS_TIPI = 'Firma Zimmet' )   or 
(SHD.FIS_TIPI = 'Personel Zimmet') or (SHD.FIS_TIPI = 'Proje Zimmet' ) AND SHD.BARKOD ='2000190350037' AND

SHD.CIKIS_TARIHI>='2012-03-08 00:00:00.000' and SHD.CIKIS_TARIHI<='2019-03-08 00:00:00.000'


THEN SHD.BIRIM_MIKTARI ELSE 0 END) CIKIS 



FROM STOK_HAREKETLERI_DETAY SHD group by SHD.BARKOD ) TBL ON TBL.BARKOD=SKT.BARKOD 


order by SKT.STOK_ADI  ASC  
 
Kardeş çok teşekkür ederim, benim çok işime yaradı bu kodlar.
Cevapla