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
|
|