Forum

Eksik veya hatalı S...
 
Bildirimler
Hepsini Temizle

[Çözüldü] Eksik veya hatalı SQL Cümlesi hakkında

8 Yazılar
3 Üyeler
2 Likes
998 Görüntüleme
Mehmet Ertaş
(@mehmetertai)
Gönderiler: 19
Eminent Member
Konu başlatıcı
 

Merhabalar,

Sql'de satış raporu almak için yazdığım bir cümlede doğru sonuç alamıyorum,
iki adet view ve bir adet tabloyu join ile birleştirdiğim şöyle bir sorgum var;
 
DECLARE @AY SMALLINT SET @AY ='3'
SELECT BM.STOK_KODU, BM.STOK_ADI
,SUM(CASE WHEN W20.AY = @AY THEN W20.TOPLAM_TUTAR  ELSE 0 END) AS T2020  
,SUM(CASE WHEN W21.AY = @AY THEN W21.TOPLAM_TUTAR  ELSE 0 END) AS T2021
FROM BIMANAGRUP BM FULL JOIN
TBLWRAPOR2021 W21 ON BM.STOK_KODU = W21.STOK FULL JOIN
TBLWRAPOR2020 W20 ON BM.STOK_KODU = W20.STOK AND W20.AY=W21.AY
where BM.ANAGRUP = 'TUTUN MAMULLERI'
GROUP BY BM.STOK_KODU,BM.STOK_ADI
 
2021 yılının verileri doğru geliyor, fakat 2020 yılı eksik geliyor,
sorguyu ;
 
DECLARE @AY SMALLINT SET @AY ='3'
SELECT BM.STOK_KODU, BM.STOK_ADI
,SUM(CASE WHEN W20.AY = @AY THEN W20.TOPLAM_TUTAR  ELSE 0 END) AS T2020  
,SUM(CASE WHEN W21.AY = @AY THEN W21.TOPLAM_TUTAR  ELSE 0 END) AS T2021
FROM BIMANAGRUP BM FULL JOIN
TBLWRAPOR2020 W20 ON BM.STOK_KODU = W20.STOK FULL JOIN
TBLWRAPOR2021 W21 ON BM.STOK_KODU = W21.STOK AND W21.AY=W20.AY
where BM.ANAGRUP = 'TUTUN MAMULLERI'
GROUP BY BM.STOK_KODU,BM.STOK_ADI
 
şeklinde değiştirdiğimde 2020 yılı doğru fakat 2021 yılı eksik geliyor.
Join işleminde ne gibi bir eksikliğim var acaba,
Yardımcı olabilirseniz sevinirim,
Teşekkürler.
 
Gönderildi : 28/07/2021 17:45

(@mehmetsucu)
Gönderiler: 85
Estimable Member
 

Merhaba, bunu bi dener misiniz?

DECLARE @AY SMALLINT ;
SET @AY = '3' ;
SELECT BM.STOK_KODU
, BM.STOK_ADI
, SUM( CASE
WHEN W20.AY = @AY THEN W20.TOPLAM_TUTAR
ELSE 0
END
) AS T2020
, SUM( CASE
WHEN W21.AY = @AY THEN W21.TOPLAM_TUTAR
ELSE 0
END
) AS T2021
FROM BIMANAGRUP BM
LEFT JOIN TBLWRAPOR2020 W20
ON BM.STOK_KODU = W20.STOK
LEFT JOIN TBLWRAPOR2021 W21
ON BM.STOK_KODU = W21.STOK
WHERE BM.ANAGRUP = 'TUTUN MAMULLERI'
GROUP BY BM.STOK_KODU
, BM.STOK_ADI ;

Mehmet SUCU
HBYS Yazılım Uzmanı
[email protected]
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 29/07/2021 10:33

Mehmet Ertaş
(@mehmetertai)
Gönderiler: 19
Eminent Member
Konu başlatıcı
 

Sayın @mehmetsucu maalesef sonuç aynı ☹️ 

 
Gönderildi : 29/07/2021 11:09

Mehmet Ertaş
(@mehmetertai)
Gönderiler: 19
Eminent Member
Konu başlatıcı
 

Aslında istediğim,

Şu iki sorguyu birleştirmekti;

 

DECLARE @AY SMALLINT SET @AY = '3'

SELECT STOK,STOK_ISMI,SUM(TOPLAM_TUTAR) FROM TBLWRAPOR2021 WHERE AY= @AY AND ANAGRUP = 'TUTUN MAMULLERI'
GROUP BY STOK,STOK_ISMI

SELECT STOK,STOK_ISMI,SUM(TOPLAM_TUTAR) FROM TBLWRAPOR2020 WHERE AY= @AY AND ANAGRUP = 'TUTUN MAMULLERI'
GROUP BY STOK,STOK_ISMI

 

Sonuçlar doğru dönmeyince,

Stok sabit kayıtlarının tutulduğu BIMANAGRUP tablomu sola alıp yapmaya çalıştım,

Fakat bir türlü iki tablonun toplam verilerini bir arada alamadım...

 
Gönderildi : 29/07/2021 14:29

(@omercolakoglu)
Gönderiler: 66
Trusted Member
 

Bunu dene. Tüm ürün gruplarının tüm ay ve yıllar için toplamını getirir. 

Yıl alanı sorguda görünmüyor ama YIL diye tahmin ediyorum. 

SELECT ANAGRUP,YIL,AY,SUM(TOPLAMTUTAR) FROM
(
SELECT * FROM TBLWRAPOR2020
UNION ALL
SELECT * FROM TBLWRAPOR2021
) T
GROUP BY YIL,AY,ANAGRUP

 

3. aydakileri tek satırda yılsız toplam olarak görmek istersen de bunu dene

SELECT   SUM(TOPLAMTUTAR) FROM
(
SELECT * FROM TBLWRAPOR2020
UNION ALL
SELECT * FROM TBLWRAPOR2021
) T

where AY='3' AND ANAGRUP='TÜTÜN MAMÜLLERİ'
 

 

 
Gönderildi : 29/07/2021 14:44

Mehmet Ertaş
(@mehmetertai)
Gönderiler: 19
Eminent Member
Konu başlatıcı
 

Sayın @omercolakoglu ,

Union All ile iki tabloyu birleştirmek istemedim aslında, yanlış anlattım sanırım,

sATIS

 Bu şekilde 2020 yılı ve 2021 yılını karşılaştırarak, tekel grubu ürünlerin 3.ay satışını almak istemiştim.

Teşekkür ederim.

 
Gönderildi : 29/07/2021 15:31

(@omercolakoglu)
Gönderiler: 66
Trusted Member
 

Kodlara izin vermediği için kodu txt olarak paylaşıyorum. Verisetini generate eden ve iki farklı yöntemle sonucu gösteren sorgular ve sonuçları ekte.

image

 

image
 
Gönderildi : 29/07/2021 18:27

Mehmet Ertaş
(@mehmetertai)
Gönderiler: 19
Eminent Member
Konu başlatıcı
 

Sayın @omercolakoglu ,

Emeğinize Sağlık , Süpersiniz.

 
Gönderildi : 30/07/2021 09:37

Paylaş: