Sayfayı Yazdır | Pencereyi Kapat

raporda takildim

Nereden Yazdırıldığı: ERP Nedir? | Türkiye'nin ERP Forum Platformu
Kategori: SQL
Forum Adı: SQL Veri Tabanı İşlemleri
Forum Tanımlaması: Table,View,Trigger,SELECT,UPDATE,INSERT...
URL: http://www.erpne.org/forum_posts.asp?TID=4480
Tarih: 26 Kasım 2024 Saat 01:18
Program Versiyonu: Web Wiz Forums 11.10 - http://www.webwizforums.com


Konu: raporda takildim
Mesajı Yazan: social
Konu: raporda takildim
Mesaj Tarihi: 06 Nisan 2017 Saat 11:22
SELECT DISTINCT 
                         dbo.TBLSTHAR.STOK_KODU, dbo.TBLSTSABIT.STOK_ADI, AVG((CASE WHEN TBLSTHAR.STHAR_GCKOD = 'G' THEN TBLSTHAR.STHAR_GCMIK ELSE 0 END) 
                         * dbo.TBLSTHAR.STHAR_NF) AS GIRISF, AVG((CASE WHEN TBLSTHAR.STHAR_GCKOD = 'C' AND TBLSTHAR.STHAR_HTUR IN ('H') 
                         THEN TBLSTHAR.STHAR_GCMIK ELSE 0 END) * dbo.TBLSTHAR.STHAR_NF) AS CIKISF
FROM            dbo.TBLCAHAR INNER JOIN
                         dbo.TBLFATUIRS ON dbo.TBLCAHAR.CARI_KOD = dbo.TBLFATUIRS.CARI_KODU INNER JOIN
                         dbo.TBLSTHAR ON dbo.TBLFATUIRS.CARI_KODU = dbo.TBLSTHAR.STHAR_ACIKLAMA INNER JOIN
                         dbo.TBLSTSABIT ON dbo.TBLSTHAR.STOK_KODU = dbo.TBLSTSABIT.STOK_KODU
GROUP BY dbo.TBLCAHAR.CARI_KOD, dbo.TBLSTSABIT.STOK_ADI, dbo.TBLSTHAR.STHAR_GCKOD, dbo.TBLSTHAR.STOK_KODU
HAVING        (dbo.TBLSTHAR.STOK_KODU = '54102SWAE01ZB') AND (dbo.TBLCAHAR.CARI_KOD IN ('01000', '45473'))


şu sekılde bır rapor yapmaya çalışıyorum,girişlerin carisi 01000,çıkışların carisi 45473
girişler fatura ile çıkışlar irsaliye ile yapılıyor
giriş ve çıkış fıyatlarının ortalamasını almak ıstıyorum
bırde çıkış irsaliyelerinde plasıyer koduna G giriliyor.sadece onlar lazım



Cevaplar:
Mesajı Yazan: social
Mesaj Tarihi: 06 Nisan 2017 Saat 11:25
http://hizliresim.com/1L6jqY" rel="nofollow">

bunun gıbı bır sonuç alıyorum bunu tek kalemde giriş ve çıkış fiyatı olarak nasıl alabılırım acaba


Mesajı Yazan: mbaykan
Mesaj Tarihi: 06 Nisan 2017 Saat 17:20
GROUP BY demişşsin DISTINCT olmamalı
çıkartırsan sonuç satırı 1'e iner
ama sorgunu farklı şeklide yazmalısın

WITH GIRIS AS (SELECT STOK_KODU,SUM(CASE WHEN STHAR_GCKOD='G' THEN STHAR_GCMIK ELSE -STHAR_GCMIK END) MIKTAR,
SUM((CASE WHEN STHAR_GCKOD='G' THEN STHAR_GCMIK*STHAR_NF ELSE -STHAR_GCMIK*STHAR_IAF END)) TUTAR
FROM TBLSTHAR
WHERE STHAR_ACIKLAMA='01000' AND ((STHAR_GCKOD='G' AND STHAR_HTUR='J' AND STHAR_NF<>0) OR (STHAR_GCKOD='C' AND STHAR_HTUR='L'))
GROUP BY STOK_KODU),
CIKIS AS (SELECT STOK_KODU,SUM(CASE WHEN STHAR_GCKOD='C' THEN STHAR_GCMIK ELSE -STHAR_GCMIK END) MIKTAR,
SUM((CASE WHEN STHAR_GCKOD='C' THEN STHAR_GCMIK*STHAR_IAF ELSE -STHAR_GCMIK*STHAR_NF END)) TUTAR,
SUM((CASE WHEN STHAR_GCKOD='C' THEN STHAR_GCMIK*STHAR_NF ELSE -STHAR_GCMIK*STHAR_IAF END)) TUTAR1
FROM TBLSTHAR
WHERE PLASIYER_KODU='G' AND STHAR_ACIKLAMA='45473' AND ((STHAR_GCKOD='C' AND STHAR_HTUR='H' AND STHAR_NF<>0) OR (STHAR_GCKOD='G' AND STHAR_HTUR='L'))
GROUP BY STOK_KODU)

SELECT COALESCE(A.STOK_KODU,B.STOK_KODU) STOK_KODU,STOK_ADI,A.MIKTAR G_MIKTAR,A.TUTAR G_TUTAR,A.TUTAR/A.MIKTAR ORT_GIRIS,
B.MIKTAR C_MIKTAR,B.TUTAR MALIYET,B.TUTAR/B.MIKTAR ORT_MALIYET,TUTAR1 C_TUTAR,TUTAR1/B.MIKTAR ORT_CIKIS
FROM GIRIS A
FULL JOIN CIKIS B ON A.STOK_KODU=B.STOK_KODU
JOIN TBLSTSABIT C ON COALESCE(A.STOK_KODU,B.STOK_KODU)=C.STOK_KODU

burada karşılıklı iadeleri düştüm. Stok'ta maliyeti kullandığınızı düşünerek çıkışı maliiyetle de hesapladım



-------------
Mehmet Baykan


Mesajı Yazan: social
Mesaj Tarihi: 06 Nisan 2017 Saat 18:01
hocam teşekkurler bunu su sekılde duzenleyebılırmısınız
ben sadece çıkışlarında plasıyer kodu g olanları goreyım
null olan satırların girişi önemlı degıl.onlar gelmesın


http://hizliresim.com/Bra0oD" rel="nofollow">


Mesajı Yazan: mbaykan
Mesaj Tarihi: 06 Nisan 2017 Saat 19:43
FULL JOIN'i INNER JOIN olarak değiştir

-------------
Mehmet Baykan



Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 11.10 - http://www.webwizforums.com
Copyright ©2001-2017 Web Wiz Ltd. - https://www.webwiz.net