Toplam gün sayisi (0 bakiye)
Nereden Yazdırıldığı: ERP Nedir? | Türkiye'nin ERP Forum Platformu
Kategori: ERP Temel Paketler
Forum Adı: ERP Stok Modülü
Forum Tanımlaması: Stok Modülü İle İlgili Bilgiler ve Sorular İçin...
URL: http://www.erpne.org/forum_posts.asp?TID=4449
Tarih: 21 Kasım 2024 Saat 18:53 Program Versiyonu: Web Wiz Forums 11.10 - http://www.webwizforums.com
Konu: Toplam gün sayisi (0 bakiye)
Mesajı Yazan: fduyar
Konu: Toplam gün sayisi (0 bakiye)
Mesaj Tarihi: 07 Ocak 2017 Saat 09:57
Merhaba,Bir ürünün stok bakiyesinin 1 yil
içerisinde toplam kaç gün “0” bakiye de oldugunu görmek istiyoruz.Burada amacimiz bu ürünün kaç gün yok
satildigini bulmak. Böylece yillik tedarik planlamasi buna göre yapilabilir.
Ayrica raporda bu ürüne ait iade var
ise toplam iade edilen adeti de görmek istiyoruz.
Rapora ait sahalar asagidaki gibi
olmalidir.
ürün kodu – toplam gün sayisi(0
bakiye) – iade toplam adeti – Toplam giris miktari – toplam
çikis miktari Bizim için en önemli alanlar: ürün kodu – toplam gün sayisi(0 bakiye) Bunu alabilecegimiz bir rapor var mi ? Yoksa nasil bir sql sorgusu ile bu raporu alabiliriz arkadaslar. Yardimlariniz için tesekkürler. Netsis Entegre V8 kullaniyoruz.
|
Cevaplar:
Mesajı Yazan: mbaykan
Mesaj Tarihi: 07 Ocak 2017 Saat 19:11
sql versiyonunuz nedir? 2012 ve üzeri ise analitik fonsiyonlardan yararlanacagim. degil ise sorgu degisecek EK:
SELECT STOK_KODU,SUM(GUN) TOPLAM_GUN FROM ( SELECT *,LEAD(STHAR_TARIH) OVER (ORDER BY SIRA1) AS SONRAKI, DATEDIFF(d,STHAR_TARIH,CASE WHEN LEAD(STHAR_TARIH) OVER (ORDER BY SIRA1) IS NOT NULL THEN LEAD(STHAR_TARIH) OVER (ORDER BY SIRA1) ELSE GETDATE() END) GUN FROM (SELECT ROW_NUMBER() OVER(ORDER BY STHAR_TARIH,STHAR_GCKOD DESC) AS SIRA1,STOK_KODU, STHAR_TARIH,CASE WHEN STHAR_GCKOD='G' THEN STHAR_GCMIK ELSE 0 END AS GIRIS, CASE WHEN STHAR_GCKOD='C' THEN STHAR_GCMIK ELSE 0 END AS CIKIS, SUM(CASE WHEN STHAR_GCKOD='C' THEN -STHAR_GCMIK ELSE STHAR_GCMIK END) OVER (ORDER BY STHAR_TARIH,STHAR_GCKOD DESC) AS BAKIYE
FROM TBLSTHAR WHERE STOK_KODU='DT01ACA050' AND STHAR_HTUR<>'N' ) C ) CC WHERE BAKIYE=0 GROUP BY STOK_KODU
------------- Mehmet Baykan
|
Mesajı Yazan: fduyar
Mesaj Tarihi: 09 Ocak 2017 Saat 09:19
Merhaba cevabiniz için çok tesekkürler sql versiyonumuz 2012, bu kod çalisir mi ?
|
Mesajı Yazan: fduyar
Mesaj Tarihi: 09 Ocak 2017 Saat 09:29
ok çalisti tesekkür ederim. tüm stok için çalistirmak için ne yapmam lazim
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 09 Ocak 2017 Saat 15:24
WITH IADE AS (SELECT STOK_KODU,SUM(CASE WHEN U.STHAR_HTUR='L' THEN CASE WHEN U.STHAR_GCKOD='C' THEN -U.STHAR_GCMIK ELSE U.STHAR_GCMIK END ELSE 0 END) IADE_MIK FROM TBLSTHAR U GROUP BY STOK_KODU)
SELECT CC.STOK_KODU,STOK_ADI,SUM(GUN) TOPLAM_GUN,IADE_MIK,TOP_GIRIS_MIK,TOP_CIKIS_MIK
FROM ( SELECT TOP 100 PERCENT *,LEAD(STHAR_TARIH) OVER (PARTITION BY STOK_KODU ORDER BY STOK_KODU,SIRA1) AS SONRAKI, DATEDIFF(d,STHAR_TARIH,CASE WHEN LEAD(STHAR_TARIH) OVER (ORDER BY SIRA1) IS NOT NULL THEN LEAD(STHAR_TARIH) OVER (ORDER BY SIRA1) ELSE GETDATE() END) GUN FROM (SELECT TOP 100 PERCENT ROW_NUMBER() OVER(PARTITION BY STOK_KODU ORDER BY STOK_KODU,STHAR_TARIH,STHAR_GCKOD DESC) AS SIRA1,STOK_KODU, STHAR_TARIH,CASE WHEN STHAR_GCKOD='G' THEN STHAR_GCMIK ELSE 0 END AS GIRIS, CASE WHEN STHAR_GCKOD='C' THEN STHAR_GCMIK ELSE 0 END AS CIKIS, SUM(CASE WHEN STHAR_GCKOD='C' THEN -STHAR_GCMIK ELSE STHAR_GCMIK END) OVER (PARTITION BY STOK_KODU ORDER BY STOK_KODU,STHAR_TARIH,STHAR_GCKOD DESC) AS BAKIYE FROM TBLSTHAR WHERE STHAR_HTUR<>'N' ORDER BY STOK_KODU,STHAR_TARIH,STHAR_GCKOD DESC ) C ORDER BY STOK_KODU,SIRA1 ) CC JOIN TBLSTSABIT A ON CC.STOK_KODU=A.STOK_KODU JOIN TBLSTOKPH AA ON CC.STOK_KODU=AA.STOK_KODU AND AA.DEPO_KODU=0 LEFT JOIN IADE E ON CC.STOK_KODU=E.STOK_KODU WHERE BAKIYE=0 GROUP BY CC.STOK_KODU,STOK_ADI,TOP_GIRIS_MIK,TOP_CIKIS_MIK,STOK_ADI,IADE_MIK
------------- Mehmet Baykan
|
Mesajı Yazan: fduyar
Mesaj Tarihi: 09 Ocak 2017 Saat 16:23
Ilginiz için çok tesekkür ederim öncelikle.
Kodu denedim ilk verdiginiz kodu bir stok kodu için çalistirdim 117 gün çikti . Simdi son verdiginiz kodu denedigimde 128 gün çikti ayni ürün nedeni ne olabilir ?
|
Mesajı Yazan: fduyar
Mesaj Tarihi: 09 Ocak 2017 Saat 16:40
Bir kaç ürün için baktim, sonuçlar hatali veriyor son verdiginiz kodda. Müsait oldugunuzda bakabilirmisiniz, tesekkürler
|
Mesajı Yazan: fduyar
Mesaj Tarihi: 09 Ocak 2017 Saat 18:17
detayli olarak inceledim ilk verdiginiz kodun sonucu yani gün saysi dogru fakat ikinci verdiginiz kodda toplam gün sayilari hatali.
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 09 Ocak 2017 Saat 21:13
EVET hatayi düzelttim
WITH IADE AS (SELECT STOK_KODU,SUM(CASE WHEN U.STHAR_HTUR='L' THEN CASE WHEN U.STHAR_GCKOD='C' THEN -U.STHAR_GCMIK ELSE U.STHAR_GCMIK END ELSE 0 END) IADE_MIK FROM TBLSTHAR U GROUP BY STOK_KODU)
SELECT CC.STOK_KODU,STOK_ADI,SUM(GUN) TOPLAM_GUN,IADE_MIK,TOP_GIRIS_MIK,TOP_CIKIS_MIK
FROM ( SELECT TOP 100 PERCENT *,LEAD(STHAR_TARIH) OVER (PARTITION BY STOK_KODU ORDER BY STOK_KODU,SIRA1) AS SONRAKI, DATEDIFF(d,STHAR_TARIH,CASE WHEN LEAD(STHAR_TARIH) OVER (PARTITION BY STOK_KODU ORDER BY STOK_KODU,SIRA1) IS NOT NULL THEN LEAD(STHAR_TARIH) OVER (PARTITION BY STOK_KODU ORDER BY STOK_KODU,SIRA1) ELSE GETDATE() END) GUN FROM (SELECT TOP 100 PERCENT ROW_NUMBER() OVER(PARTITION BY STOK_KODU ORDER BY STOK_KODU,STHAR_TARIH,STHAR_GCKOD DESC) AS SIRA1,STOK_KODU, STHAR_TARIH,CASE WHEN STHAR_GCKOD='G' THEN STHAR_GCMIK ELSE 0 END AS GIRIS, CASE WHEN STHAR_GCKOD='C' THEN STHAR_GCMIK ELSE 0 END AS CIKIS, SUM(CASE WHEN STHAR_GCKOD='C' THEN -STHAR_GCMIK ELSE STHAR_GCMIK END) OVER (PARTITION BY STOK_KODU ORDER BY STOK_KODU,STHAR_TARIH,STHAR_GCKOD DESC) AS BAKIYE FROM TBLSTHAR WHERE STHAR_HTUR<>'N' ORDER BY STOK_KODU,STHAR_TARIH,STHAR_GCKOD DESC ) C ORDER BY STOK_KODU,SIRA1 ) CC JOIN TBLSTSABIT A ON CC.STOK_KODU=A.STOK_KODU JOIN TBLSTOKPH AA ON CC.STOK_KODU=AA.STOK_KODU AND AA.DEPO_KODU=0 LEFT JOIN IADE E ON CC.STOK_KODU=E.STOK_KODU WHERE BAKIYE=0 GROUP BY CC.STOK_KODU,STOK_ADI,TOP_GIRIS_MIK,TOP_CIKIS_MIK,STOK_ADI,IADE_MIK
------------- Mehmet Baykan
|
Mesajı Yazan: fduyar
Mesaj Tarihi: 10 Ocak 2017 Saat 09:56
ilginiz için tesekkürler. evet kod çalisti. Fakat bu sefer farkli bir hata tespit ettim. Ürün eger sene basindan beri stok da var ise ver senenin belli araliklarinda 0 bakiyeye düstüyse sonucu dogru veriyor. Fakat ürün bakiyesi sene basinda 0 ise ve stoga örnegin mayis da girdiyse sonuç hatali çikiyor.
Örnegin bi ürün: 18/05/16 da stoga girmis 30/05/16 da stok tükenmis bi daha da stoga girmemis
bu durumda 0 bakiye oldugu gün 365 gün - 12 gün satilmis = 353 gün vermesi lazim fakat sizin kodda bu islemin sonucunu 225 veriyor. yani 30/05/16 dan itibaren kaç gün "0 bakiye" oldugunu hesapliyor.
bu konuda birsey yapabilir miyiz, çok tesekkürler
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 10 Ocak 2017 Saat 10:35
yarin bakarim
------------- Mehmet Baykan
|
Mesajı Yazan: fduyar
Mesaj Tarihi: 10 Ocak 2017 Saat 12:04
ok tesekkür ederim buna da sükür :)bugun bakma firsatiniz olursada ayrica memnun olurum
Bu arada izmir içi netsis destek veriyor musunuz ? e-arsiv ve e-fatura mükellefiyiz. Bazen çözüm ortagimizin çözemedigi konular oluyor tipki bu konu gibi
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 10 Ocak 2017 Saat 12:41
evet 2012 ve üzeri versiyonlarda çalisir
------------- Mehmet Baykan
|
Mesajı Yazan: fduyar
Mesaj Tarihi: 10 Ocak 2017 Saat 13:08
yanlis yere cevap yazdiniz sanirim
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 10 Ocak 2017 Saat 14:13
WITH IADE AS (SELECT STOK_KODU,SUM(CASE WHEN U.STHAR_HTUR='L' THEN CASE WHEN U.STHAR_GCKOD='C' THEN -U.STHAR_GCMIK ELSE U.STHAR_GCMIK END ELSE 0 END) IADE_MIK FROM TBLSTHAR U GROUP BY STOK_KODU), DIGER AS (SELECT A.STOK_KODU,DATEDIFF(d,DATEFROMPARTS(YEAR(MIN(STHAR_TARIH)),1,1),MIN(STHAR_TARIH)) ILK_GIRGUN FROM TBLSTHAR A WHERE STHAR_GCKOD='G' AND CONVERT(VARCHAR(5),STHAR_TARIH,10)>'01-01' GROUP BY A.STOK_KODU ) SELECT CC.STOK_KODU,STOK_ADI,SUM(GUN) TOPLAM_GUN,IADE_MIK,TOP_GIRIS_MIK,TOP_CIKIS_MIK
FROM ( SELECT TOP 100 PERCENT *,LEAD(STHAR_TARIH) OVER (PARTITION BY STOK_KODU ORDER BY STOK_KODU,SIRA1) AS SONRAKI, DATEDIFF(d,STHAR_TARIH,CASE WHEN LEAD(STHAR_TARIH) OVER (PARTITION BY STOK_KODU ORDER BY STOK_KODU,SIRA1) IS NOT NULL THEN LEAD(STHAR_TARIH) OVER (PARTITION BY STOK_KODU ORDER BY STOK_KODU,SIRA1) ELSE GETDATE() END) GUN FROM (SELECT TOP 100 PERCENT ROW_NUMBER() OVER(PARTITION BY STOK_KODU ORDER BY STOK_KODU,STHAR_TARIH,STHAR_GCKOD DESC) AS SIRA1,STOK_KODU, STHAR_TARIH,CASE WHEN STHAR_GCKOD='G' THEN STHAR_GCMIK ELSE 0 END AS GIRIS, CASE WHEN STHAR_GCKOD='C' THEN STHAR_GCMIK ELSE 0 END AS CIKIS, SUM(CASE WHEN STHAR_GCKOD='C' THEN -STHAR_GCMIK ELSE STHAR_GCMIK END) OVER (PARTITION BY STOK_KODU ORDER BY STOK_KODU,STHAR_TARIH,STHAR_GCKOD DESC) AS BAKIYE FROM TBLSTHAR WHERE STHAR_HTUR<>'N' --and YEAR(STHAR_TARIH)=2016 ORDER BY STOK_KODU,STHAR_TARIH,STHAR_GCKOD DESC ) C UNION ALL SELECT TOP 100 PERCENT 0 AS SIRA1,STOK_KODU,NULL,0,0,0,NULL,ILK_GIRGUN FROM DIGER ORDER BY STOK_KODU,SIRA1 ) CC JOIN TBLSTSABIT A ON CC.STOK_KODU=A.STOK_KODU JOIN TBLSTOKPH AA ON CC.STOK_KODU=AA.STOK_KODU AND AA.DEPO_KODU=0 LEFT JOIN IADE E ON CC.STOK_KODU=E.STOK_KODU WHERE BAKIYE=0 GROUP BY CC.STOK_KODU,STOK_ADI,TOP_GIRIS_MIK,TOP_CIKIS_MIK,STOK_ADI,IADE_MIK
------------- Mehmet Baykan
|
Mesajı Yazan: fduyar
Mesaj Tarihi: 10 Ocak 2017 Saat 14:34
Emeginiz için tesekkürler fakat snouçlar hatali detayli inceliyorum su an
|
Mesajı Yazan: fduyar
Mesaj Tarihi: 10 Ocak 2017 Saat 14:39
daha önce 117 gün buldugunu simdi 177 gün buldu.
ben bu raporu 2016 sirketi içinde çalistiyorum. 2015'den bakiye devir etmis olan bir stok 2016 da hiç 0 bakiye olmamis bu stok içinde 46 gün buldu.
4/10/16 giris olan bir stok var daha önce ve sonrasinda bir giris yok ve satisda olmamis hiç üründen 1 adet stok giris var halen 1 adet duruyor bu ürün içinde 277 gün buldu.
umarim bu bilgiler size yardimci olur
|
Mesajı Yazan: fduyar
Mesaj Tarihi: 11 Ocak 2017 Saat 12:28
merhaba bakma firsatiniz oldu mu
|
|