Sayfayı Yazdır | Pencereyi Kapat

Subeler Dahil Sayim Fark Raporu

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=4329
Tarih: 23 Kasım 2024 Saat 00:46
Program Versiyonu: Web Wiz Forums 11.10 - http://www.webwizforums.com


Konu: Subeler Dahil Sayim Fark Raporu
Mesajı Yazan: sessizkule
Konu: Subeler Dahil Sayim Fark Raporu
Mesaj Tarihi: 25 Mart 2016 Saat 14:23
Kolay gelsin,
Netsiste Subeler dahil sayim bakiye fark raporu alinamiyor sanirim, Baya karistirdim bulamadim.
Mevcut stogumu aldigim bir view var. Buna ek olarak Tarih araliginda subeler dahil Sayim bakiye fark raporu Almak istiyordum. Mümkünse yardimci olabilir misiniz.
Yani ;
Tarih Araligi Derken Sene Basi Devirden Alacak, 
Sayim Yapilan Tarihin Bakiyesi ve 
sayim miktarini verecek

Stok Kodu Stok Adi Sube1Bakiye,Sube1Sayim,Sube2Bakiye,Sube2Sayim....... Seklinde

Mevcut View;
SELECT A.STOK_KODU,MAX(B.STOK_ADI) STOK_ADI,
SUM(CASE A.SUBE_KODU WHEN 0 THEN CASE STHAR_GCKOD WHEN 'G' THEN STHAR_GCMIK ELSE -STHAR_GCMIK END ELSE 0 END) DEPO,
SUM(CASE A.SUBE_KODU WHEN 1 THEN CASE STHAR_GCKOD WHEN 'G' THEN STHAR_GCMIK ELSE -STHAR_GCMIK END ELSE 0 END) MATIM,
SUM(CASE A.SUBE_KODU WHEN 2 THEN CASE STHAR_GCKOD WHEN 'G' THEN STHAR_GCMIK ELSE -STHAR_GCMIK END ELSE 0 END) SIVAS,
SUM(CASE A.SUBE_KODU WHEN 3 THEN CASE STHAR_GCKOD WHEN 'G' THEN STHAR_GCMIK ELSE -STHAR_GCMIK END ELSE 0 END) BEYDAGI,
SUM(CASE A.SUBE_KODU WHEN 4 THEN CASE STHAR_GCKOD WHEN 'G' THEN STHAR_GCMIK ELSE -STHAR_GCMIK END ELSE 0 END) ISTASYON,
SUM(CASE A.SUBE_KODU WHEN 5 THEN CASE STHAR_GCKOD WHEN 'G' THEN STHAR_GCMIK ELSE -STHAR_GCMIK END ELSE 0 END) ZAFER,
SUM(CASE A.SUBE_KODU WHEN 6 THEN CASE STHAR_GCKOD WHEN 'G' THEN STHAR_GCMIK ELSE -STHAR_GCMIK END ELSE 0 END) BOSTANBASI,
SUM(CASE A.SUBE_KODU WHEN 7 THEN CASE STHAR_GCKOD WHEN 'G' THEN STHAR_GCMIK ELSE -STHAR_GCMIK END ELSE 0 END) TANDOGAN,
SUM(CASE A.SUBE_KODU WHEN 8 THEN CASE STHAR_GCKOD WHEN 'G' THEN STHAR_GCMIK ELSE -STHAR_GCMIK END ELSE 0 END) CILESIZ,
SUM(CASE A.SUBE_KODU WHEN 9 THEN CASE STHAR_GCKOD WHEN 'G' THEN STHAR_GCMIK ELSE -STHAR_GCMIK END ELSE 0 END) VIZYON,
SUM(CASE STHAR_GCKOD WHEN 'G' THEN STHAR_GCMIK ELSE -STHAR_GCMIK END) TOPLAM,
B.ALIS_FIAT1 * SUM(CASE STHAR_GCKOD WHEN 'G' THEN STHAR_GCMIK ELSE -STHAR_GCMIK END)MALIYET
FROM TBLSTHAR A (NOLOCK)INNER JOIN
TBLSTSABIT B ON A.STOK_KODU=B.STOK_KODU
where A.STHAR_TARIH <= '2016-01-31 00:00:00.000' AND B.GRUP_KODU = '047'
GROUP BY A.STOK_KODU,B.ALIS_FIAT1  order by STOK_ADI

Sayim tablosundan o tarihteki ilgili subenin sayim miktarlarini alip subenin bakiyesinin yanina nasil yazabilirim?
Iyi çalismalar.



Cevaplar:
Mesajı Yazan: mbaykan
Mesaj Tarihi: 26 Mart 2016 Saat 01:10
asagida yazdigim sorguyu siz stored procedure veya table value function olarak yazarsaniz (View degil)
isinizi görür

WITH Stok AS (select STOK_KODU,SUBE_KODU,SUM(case when STHAR_GCKOD='G' THEN STHAR_GCMIK ELSE -STHAR_GCMIK END) STOK 
FROM TBLSTHAR 
WHERE STHAR_TARIH BETWEEN '2016-01-01' AND '2016-03-10' AND STHAR_HTUR<>'N' 
GROUP BY STOK_KODU,SUBE_KODU), 
Sayim AS (SELECT SUBE_KODU,STOK_KODU,MIKTAR FROM TBLSAYIM WHERE TARIH='2016-03-10'),

TblPivot AS (SELECT A.STOK_KODU,STOK_ADI,COALESCE(B.SUBE_KODU,C.SUBE_KODU) SUBE_KODU,ALIS_FIAT1 FIYAT,
MAX(C.STOK) STOK,MAX(B.MIKTAR) SAYIM 
FROM Sayim B 
FULL JOIN Stok C ON B.SUBE_KODU=C.SUBE_KODU AND B.STOK_KODU=C.STOK_KODU 
JOIN TBLSTSABIT A (NOLOCK)  ON A.STOK_KODU=COALESCE(B.STOK_KODU,C.STOK_KODU) --AND B.SUBE_KODU=B.DEPO_KODU

GROUP BY A.STOK_KODU,STOK_ADI,COALESCE(B.SUBE_KODU,C.SUBE_KODU),ALIS_FIAT1) 
SELECT STOK_KODU,STOK_ADI,FIYAT 
,MAX([STOK_0]) AS STOK_0 
,MAX([SAYIM_0]) AS SAYIM_0 
,MAX([STOK_1]) AS STOK_1 
,MAX([SAYIM_1]) AS SAYIM_1 
,MAX([STOK_2]) AS STOK_2 
,MAX([SAYIM_2]) AS SAYIM_2 
,MAX([STOK_3]) AS STOK_3 
,MAX([SAYIM_3]) AS SAYIM_3 
,MAX([STOK_4]) AS STOK_4 
,MAX([SAYIM_4]) AS SAYIM_4 
,MAX([STOK_5]) AS STOK_5 
,MAX([SAYIM_5]) AS SAYIM_5 
,MAX([STOK_6]) AS STOK_6 
,MAX([SAYIM_6]) AS SAYIM_6 
,MAX([STOK_7]) AS STOK_7 
,MAX([SAYIM_7]) AS SAYIM_7 
,MAX([STOK_8]) AS STOK_8 
,MAX([SAYIM_8]) AS SAYIM_8 
,MAX([STOK_9]) AS STOK_9 
,MAX([SAYIM_9]) AS SAYIM_9 
--,MAX([STOK_10]) AS STOK_10 
--,MAX([SAYIM_10]) AS SAYIM_10 
FROM (SELECT STOK_KODU,STOK_ADI,FIYAT,'STOK_'+CONVERT(VARCHAR,SUBE_KODU) SUBE_STOK,'SAYIM_'+CONVERT(VARCHAR,SUBE_KODU) SUBE_SAYIM,SUM(STOK) AS STOK, 
SUM(SAYIM) As SAYIM 
FROM TblPivot 
GROUP BY STOK_KODU,STOK_ADI,FIYAT,SUBE_KODU) AS T 
PIVOT (SUM(STOK) FOR SUBE_STOK IN ([STOK_0],[STOK_1],[STOK_2],[STOK_3],[STOK_4],[STOK_5],[STOK_6],[STOK_7],[STOK_8],[STOK_9]/*,[STOK_10]*/)) AS P1 
PIVOT (SUM(SAYIM) FOR SUBE_SAYIM IN ([SAYIM_0],[SAYIM_1],[SAYIM_2],[SAYIM_3],[SAYIM_4],[SAYIM_5],[SAYIM_6],[SAYIM_7],[SAYIM_8],[SAYIM_9]/*,[SAYIM_10]*/)) AS P2 
GROUP BY STOK_KODU,STOK_ADI,FIYAT;





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


Mesajı Yazan: mbaykan
Mesaj Tarihi: 26 Mart 2016 Saat 10:25
Sube'lerin Lokal deposu 1'den fazla ise asagidaki sekilde

WITH Stok AS (select STOK_KODU,SUBE_KODU,DEPO_KODU,SUM(case when STHAR_GCKOD='G' THEN STHAR_GCMIK ELSE -STHAR_GCMIK END) STOK 
FROM TBLSTHAR 
WHERE STHAR_TARIH BETWEEN '2016-01-01' AND '2016-03-10' AND STHAR_HTUR<>'N' 
GROUP BY STOK_KODU,SUBE_KODU,DEPO_KODU), 
Sayim AS (SELECT SUBE_KODU,DEPO_KODU,STOK_KODU,MIKTAR FROM TBLSAYIM WHERE TARIH='2016-03-10'),

TblPivot AS (SELECT A.STOK_KODU,STOK_ADI,COALESCE(B.SUBE_KODU,C.SUBE_KODU) SUBE_KODU,COALESCE(B.DEPO_KODU,C.DEPO_KODU) DEPO_KODU,ALIS_FIAT1 FIYAT,
MAX(C.STOK) STOK,MAX(B.MIKTAR) SAYIM 
FROM Sayim B 
FULL JOIN Stok C ON B.SUBE_KODU=C.SUBE_KODU AND B.STOK_KODU=C.STOK_KODU AND C.DEPO_KODU=B.DEPO_KODU
JOIN TBLSTSABIT A (NOLOCK)  ON A.STOK_KODU=COALESCE(B.STOK_KODU,C.STOK_KODU) --AND B.SUBE_KODU=B.DEPO_KODU

GROUP BY A.STOK_KODU,STOK_ADI,COALESCE(B.SUBE_KODU,C.SUBE_KODU),COALESCE(B.DEPO_KODU,C.DEPO_KODU),ALIS_FIAT1) 

SELECT STOK_KODU,STOK_ADI,FIYAT 
,SUM([STOK_0]) AS STOK_0 
,SUM([SAYIM_0]) AS SAYIM_0 
,SUM([STOK_1]) AS STOK_1 
,SUM([SAYIM_1]) AS SAYIM_1 
,SUM([STOK_2]) AS STOK_2 
,SUM([SAYIM_2]) AS SAYIM_2 
,SUM([STOK_3]) AS STOK_3 
,SUM([SAYIM_3]) AS SAYIM_3 
,SUM([STOK_4]) AS STOK_4 
,SUM([SAYIM_4]) AS SAYIM_4 
,SUM([STOK_5]) AS STOK_5 
,SUM([SAYIM_5]) AS SAYIM_5 
,SUM([STOK_6]) AS STOK_6 
,SUM([SAYIM_6]) AS SAYIM_6 
,SUM([STOK_7]) AS STOK_7 
,SUM([SAYIM_7]) AS SAYIM_7 
,SUM([STOK_8]) AS STOK_8 
,SUM([SAYIM_8]) AS SAYIM_8 
,SUM([STOK_9]) AS STOK_9 
,SUM([SAYIM_9]) AS SAYIM_9 
--,SUM([STOK_10]) AS STOK_10 
--,SUM([SAYIM_10]) AS SAYIM_10 
FROM (SELECT STOK_KODU,STOK_ADI,FIYAT,'STOK_'+CONVERT(VARCHAR,SUBE_KODU) SUBE_STOK,'SAYIM_'+CONVERT(VARCHAR,SUBE_KODU) SUBE_SAYIM,SUM(STOK) AS STOK, 
SUM(SAYIM) As SAYIM 
FROM TblPivot 
GROUP BY STOK_KODU,STOK_ADI,FIYAT,SUBE_KODU,DEPO_KODU) AS T 
PIVOT (SUM(STOK) FOR SUBE_STOK IN ([STOK_0],[STOK_1],[STOK_2],[STOK_3],[STOK_4],[STOK_5],[STOK_6],[STOK_7],[STOK_8],[STOK_9]/*,[STOK_10]*/)) AS P1 
PIVOT (SUM(SAYIM) FOR SUBE_SAYIM IN ([SAYIM_0],[SAYIM_1],[SAYIM_2],[SAYIM_3],[SAYIM_4],[SAYIM_5],[SAYIM_6],[SAYIM_7],[SAYIM_8],[SAYIM_9]/*,[SAYIM_10]*/)) AS P2 
GROUP BY STOK_KODU,STOK_ADI,FIYAT;




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


Mesajı Yazan: sessizkule
Mesaj Tarihi: 26 Mart 2016 Saat 14:03
Syn Mbaykan Çok tesekkür ederim sikinti yok çalisiyor.
emeginize saglik



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