Uyuyan Stok

Gönderen Konu: Uyuyan Stok  (Okunma sayısı 1266 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı kadira

  • Logo Kullanıcısı Pro
  • ***
  • Karma: -1
  • Bilgi Paylaşılırsa güzeldir.
Uyuyan Stok
« : 06.02.2015, 10:42 »
Merhaba Arkadaşlar,
Stokta uyuyan ürünleri görmem gerekiyor. Bunu program içinden alabilirmiyim ? SQL'e mi gerek duymam lazım (SQL Hız açısından )

Çevrimdışı halisbatmaz

  • Logo Uzmanı
  • *****
  • Karma: -4
Ynt: Uyuyan Stok
« Yanıtla #1 : 06.02.2015, 11:35 »
sql daha başarılı.
SELECT

 A.STGRPCODE as [ Grup Kodu ],
A.NAME as [Ürün Adı ],
CAST ((GETDATE()-(SELECT DATE_ FROM LG_008_07_STLINE WHERE LOGICALREF IN (SELECT TOP 1 LOGICALREF FROM LG_008_07_STLINE     WHERE IOCODE IN (3,4) AND STOCKREF=A.LOGICALREF ORDER BY DATE_ DESC))) AS INT) as [Son Hareket Gün ]  , 
(SELECT ONHAND FROM Lg_008_07_GNTOTST WHERE INVENNO=0 AND STOCKREF=A.LOGICALREF) as [Stok Miktarı ]   

FROM LG_008_ITEMS A,  LG_008_UNITSETF UN   WHERE A.CARDTYPE IN (1,11,12)  AND   A.UNITSETREF=UN.LOGICALREF AND A.ACTIVE=0 AND      (SELECT ONHAND FROM Lg_008_07_GNTOTST WHERE INVENNO=0 AND STOCKREF=A.LOGICALREF)>0.5  ORDER BY A.NAME

Çevrimdışı aogul

  • Yeni Kullanıcı
  • *
  • Karma: 0
Ynt: Uyuyan Stok
« Yanıtla #2 : 06.02.2015, 13:40 »
Merhabalar,

Ambar bazında, liste halinde raporlamak mümkün müdür, yoksa her ambar için ayrı subselect mi yazmak gerekir.

Iyi calismalar.



Grup Kodu, Ürün Adı, Ambar, Son Hareket Gün, Stok Miktarı


Grup Kodu, Ürün Adı, Ambar1, Son Hareket Gün1, Stok Miktarı1, Ambar2, Son Hareket Gün2, Stok Miktarı2) 




Çevrimdışı kadira

  • Logo Kullanıcısı Pro
  • ***
  • Karma: -1
  • Bilgi Paylaşılırsa güzeldir.
Ynt: Uyuyan Stok
« Yanıtla #3 : 06.02.2015, 15:22 »
Kodda sanırım bir hata var, Lg_xxx_xx_GNTOTST değer döndürmüyor.

Çevrimdışı aogul

  • Yeni Kullanıcı
  • *
  • Karma: 0
Ynt: Uyuyan Stok
« Yanıtla #4 : 06.02.2015, 15:32 »
Lg_xxx_xx_GNTOTST artık LV_xxx_xx_GNTOTST oldu

Çevrimdışı kadira

  • Logo Kullanıcısı Pro
  • ***
  • Karma: -1
  • Bilgi Paylaşılırsa güzeldir.
Ynt: Uyuyan Stok
« Yanıtla #5 : 06.02.2015, 17:48 »
SELECT      S.CODE AS [STOK KODU], S.NAME AS [STOK ADI],
                      ISNULL(SUM(CASE WHEN T .INVENNO = 0 THEN T .ONHAND - T .RESERVED END), 0) AS MERKEZ,T.LASTTRDATE
FROM         dbo.LG_115_ITEMS AS S LEFT OUTER JOIN
                      dbo.LV_115_01_STINVTOT AS T ON S.LOGICALREF = T.STOCKREF AND T.INVENNO <> - 1
                     
                     
WHERE     (S.ACTIVE = 0) AND (S.CARDTYPE IN (1))
GROUP BY S.CARDTYPE, S.STGRPCODE, S.SPECODE, S.LOGICALREF, S.CODE, S.NAME , T.LASTTRDATE 

Şöyle bir şey yaptım. Ama T.LASTTRDATE i eklediğim zaman aynı stok 3 defa hareket gördüğü için 3 kere getiriyor farklı tarihler olduğu için bunun önüne nasıl geçebilirim.

Çevrimdışı kadira

  • Logo Kullanıcısı Pro
  • ***
  • Karma: -1
  • Bilgi Paylaşılırsa güzeldir.
Ynt: Uyuyan Stok
« Yanıtla #6 : 10.02.2015, 13:59 »
:( olmadı. 

Çevrimdışı MehmetYavuz

  • Logo Uzmanı
  • *****
  • Karma: 3
Ynt: Uyuyan Stok
« Yanıtla #7 : 10.02.2015, 14:16 »
SELECT ITEMS.CODE, ITEMS.NAME,  MAXDATE, DATEDIFF(DAY, MAXDATE, GETDATE())
FROM LG_001_ITEMS ITEMS
LEFT JOIN (SELECT STOCKREF,
         MAX(DATE_) MAXDATE   -- son hareket tarhihi. girişmi çıkışmı belli değil.
         -- buraya şuda eklenebilir
         --MAX(CASE WHEN STLINE.IOCODE IN (3,4) THEN DATE_ ELSE NULL END) CIKIS_TARIHI,
         --MAX(CASE WHEN STLINE.IOCODE IN (1,2) THEN DATE_ ELSE NULL END) GIRIS_TARIHI,
         FROM LG_001_01_STLINE STLINE (NOLOCK)
         WHERE CANCELLED=0
         GROUP BY STOCKREF) DATA ON ITEMS.LOGICALREF=DATA.STOCKREF

Çevrimdışı MehmetYavuz

  • Logo Uzmanı
  • *****
  • Karma: 3
Ynt: Uyuyan Stok
« Yanıtla #8 : 10.02.2015, 14:23 »
Buda ambarlıya örnek:

SELECT ITEMS.CODE, ITEMS.AMBAR,  MAXDATE, DATEDIFF(DAY, MAXDATE, GETDATE())
FROM   (SELECT ITEMS.LOGICALREF, CODE, NR AMBAR
      FROM LG_001_ITEMS ITEMS, L_CAPIWHOUSE WHOUSE
      WHERE WHOUSE.FIRMNR=001) ITEMS
      
   LEFT JOIN (SELECT STOCKREF, SOURCEINDEX AMBAR,
            MAX(DATE_) MAXDATE
            FROM LG_001_01_STLINE STLINE (NOLOCK)
            WHERE CANCELLED=0
            GROUP BY STOCKREF, SOURCEINDEX) DATA ON ITEMS.LOGICALREF=DATA.STOCKREF AND ITEMS.AMBAR=DATA.AMBAR
WHERE   DATA.AMBAR IS NOT NULL

Çevrimdışı aogul

  • Yeni Kullanıcı
  • *
  • Karma: 0
Ynt: Uyuyan Stok
« Yanıtla #9 : 10.02.2015, 15:10 »
Cevap için teşekkür ederim üstadım.

Bende kendimce bir çözüm bulmuştum. Stok ve satışlar için bir query, son işlem tarihleri için başka bir query. İki tabloyu join ile birleştirdim. Son işlem tarihleri için kullandığım query;

SELECT L_CAPIWHOUSE.NAME As DEPO, ITEMS.CODE As MALZEME_KOD,
ITEMS.NAME As MALZEME_ACIKLAMASI, ISNULL(MARKA.DESCR, 'MARKA TANIMLI DEGIL') As MARKA,
CASE WHEN STLINE.TRCODE=1 THEN 'MAL ALIM'
WHEN STLINE.TRCODE=6 THEN 'MAL ALIM IADE'
WHEN STLINE.TRCODE IN (2, 3) THEN 'IADE'
WHEN STLINE.TRCODE IN (7, 8 ) THEN 'SATIS' END AS ISLEM_TURU,
CAST(GETDATE()-MAX(STLINE.DATE_) AS INT) AS GUN_SAYISI
From LG_xxx_xx_STLINE STLINE With(NoLock)
Left Join LG_xxx_ITEMS ITEMS With(NoLock) On ITEMS.LOGICALREF = STLINE.STOCKREF
Left Join LG_xxx_MARK MARKA With(NoLock) On ITEMS.MARKREF = MARKA.LOGICALREF
Left Join L_CAPIWHOUSE With(NoLock) On STLINE.SOURCEINDEX = L_CAPIWHOUSE.NR And L_CAPIWHOUSE.FIRMNR = 'xxx' 
WHERE STLINE.TRCODE IN (1, 6, 2, 3, 7, 8 ) AND ITEMS.ACTIVE=0 AND ITEMS.CARDTYPE=1
GROUP BY  L_CAPIWHOUSE.NAME, ITEMS.CODE, ITEMS.NAME3,
ITEMS.NAME, MARKA.DESCR, STLINE.TRCODE

Çevrimdışı kadira

  • Logo Kullanıcısı Pro
  • ***
  • Karma: -1
  • Bilgi Paylaşılırsa güzeldir.
Ynt: Uyuyan Stok
« Yanıtla #10 : 12.02.2015, 12:14 »
SELECT 
   A.CODE AS Kodu, A.NAME AS ACIKLAMA,
           CONVERT( VARCHAR (10), B.LASTTRDATE,104) AS SHTarihi,
           ISNULL(SUM(CASE WHEN B .INVENNO = 0 THEN B .ONHAND - B .RESERVED END), 0) AS DEPO,
          --CONVERT(VARCHAR(10),GETDATE(),104) AS BUGUN,
          DATEDIFF( DAY, B.LASTTRDATE,GETDATE()) AS [HAREKETSİZ GÜN SAYISI]
--(CONVERT( VARCHAR (10), B.LASTTRDATE,104) - CONVERT(VARCHAR(10),GETDATE(),104)) AS TARİH
           
           --ISNULL(SUM(CASE WHEN B .INVENNO = 1 THEN B .ONHAND  END), 0) AS AMBAR
FROM       LG_115_ITEMS AS A INNER JOIN
           LV_115_01_GNTOTST AS B ON A.LOGICALREF = B.STOCKREF
GROUP BY A.CODE, A.NAME, B.LASTTRDATE
ORDER BY Kodu, SHTarihi


Cevaplar için teşekkür ederim üstadlarım.