Hangi lot numarasında ne kadar stok var? Hangi malzemeden ne kadar var ambarda?

Gönderen Konu: Hangi lot numarasında ne kadar stok var? Hangi malzemeden ne kadar var ambarda?  (Okunma sayısı 825 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı hyponectia

  • Logo Kullanıcısı
  • **
  • Karma: 0
  • hyponectia.com
Merhabalar,

Aşağıdaki gibi bir sorgu yazdım ihtiyaç olduğu için. Hem belli bir ambardaki (tüm ambarlar da olabilir) hangi lot numarasında ne kadar malzeme var, hem de belirtilen malzemeden ne kadar var sonuçlarını aynı anda getiriyor.

İşinize yarayabilir:

Kod: [Seç]
SELECT * FROM (
SELECT IT.CODE AS MALZKOD, IT.NAME AS MALZACIKLAMA, SUM(REMAMOUNT) AS MIKTAR,SER.CODE AS LOTNO FROM LG_004_01_SLTRANS AS SLT
LEFT JOIN LG_004_ITEMS AS IT ON SLT.ITEMREF=IT.LOGICALREF
LEFT JOIN LG_004_01_STLINE AS STL ON SLT.STTRANSREF=STL.LOGICALREF
LEFT JOIN LG_004_01_SERILOTN AS SER ON SLT.SLREF=SER.LOGICALREF
WHERE STL.SOURCEINDEX=0
GROUP BY SLT.ITEMREF, IT.CODE, IT.NAME, SER.CODE
) BLG WHERE MIKTAR>0


UNION ALL

SELECT IT.CODE AS MALZKOD, IT.NAME AS MALZACIKLAMA, SUM(ONHAND) AS MIKTAR, 
CASE WHEN INVENNO=0 THEN 'MERKEZTPLM' END AS LOTNO
FROM LV_004_01_STINVTOT STI LEFT JOIN LG_004_ITEMS AS IT ON STI.STOCKREF=IT.LOGICALREF

WHERE INVENNO=0 GROUP BY STOCKREF, IT.CODE, IT.NAME, INVENNO


ORDER BY MALZKOD

İyi çalışmalar :)

vedat_ozer

  • Ziyaretçi
Selamlar,

Paylaşım için teşekkür ederim.  :)

Çevrimdışı Recete

  • Yeni Kullanıcı
  • *
  • Karma: 0
Merhaba,
Bu sorguya seri numarası ilk hareket tarihi ilave edebilir miyiz?
Bir seri numarası bir önceki firmada hangi tarihte hareket görmüş?
Aşağıdaki sorguyu yapmaya çalıştım ama olmadı.
Bir bakabilir misiniz?

Not-1: 2021 Firması şöyledir: LG_002_01
Not-2: S1.CODE=S.CODE kısmındaki S.CODE sorgunun devamındaki FROM kısmında bulunan LG_001_01_SERILOTN kısmını işaret etmektedir.

Kod: [Seç]

(CASE WHEN
SELECT TOP 1 T1.DATE_ FROM LG_001_01_SERILOTN S1 LEFT JOIN LG_001_01_SLTRANS T1 ON T1.SLREF=S1.LOGICALREF WHERE S1.CODE=S.CODE
IS NULL THEN
SELECT TOP 1 T1.DATE_ FROM LG_001_02_SERILOTN S1 LEFT JOIN LG_001_02_SLTRANS T1 ON T1.SLREF=S1.LOGICALREF WHERE S1.CODE=S.CODE
ELSE
SELECT TOP 1 T1.DATE_ FROM LG_002_01_SERILOTN S1 LEFT JOIN LG_002_01_SLTRANS T1 ON T1.SLREF=S1.LOGICALREF WHERE S1.CODE=S.CODE
ORDER BY T.DATE_)) END AS 'İLK HAREKET TARİHİ',

Çevrimdışı hyponectia

  • Logo Kullanıcısı
  • **
  • Karma: 0
  • hyponectia.com
Merhaba,

Sorgu sonuç mu vermiyor yoksa hatalı sonuç mu veriyor?

Subquery'lerin tamamına ORDER BY eklemeniz gerek. Sadece üçüncüde gözüküyor.

Hareketin türü önemli değil mi?

Çevrimdışı Recete

  • Yeni Kullanıcı
  • *
  • Karma: 0
Merhaba,

Bu sorgu tek firma olunca çalışıyor. Diğer firmaları ekleyince  hiç çalıştıramadım. ORDER BY da hata verdiği için eklemedim.

Hareketinin türü önemli değildir. Bu bir stokta bekleyenler raporu olduğundan ilk giriş tarihini görmek istiyorum.

Örnek verecek olur isek bir mal 2021 Ocak ayında iade geldi ondan önce başka bir yerden iade geldi ama ilk girişi 2013 yılında... Burada 2013 yılında hangi tarihte girişi yapılmış onu görmek istiyorum.

Çevrimdışı hyponectia

  • Logo Kullanıcısı
  • **
  • Karma: 0
  • hyponectia.com
Merhaba,

Kod: [Seç]

SELECT IT.CODE AS MALZKOD, IT.NAME AS MALZACIKLAMA, SUM(REMAMOUNT) AS MIKTAR,SER.CODE AS LOTNO,

ISNULL(ISNULL(ISNULL((SELECT TOP (1) X.DATE_ FROM LG_001_01_SLTRANS X LEFT JOIN LG_001_01_SERILOTN Y ON X.SLREF=Y.LOGICALREF WHERE SER.CODE=Y.CODE ORDER BY X.DATE_ ASC),(SELECT TOP (1) X.DATE_ FROM LG_002_01_SLTRANS X LEFT JOIN LG_002_01_SERILOTN Y ON X.SLREF=Y.LOGICALREF WHERE SER.CODE=Y.CODE ORDER BY X.DATE_ ASC)),(SELECT TOP (1) X.DATE_ FROM LG_003_01_SLTRANS X LEFT JOIN LG_003_01_SERILOTN Y ON X.SLREF=Y.LOGICALREF WHERE SER.CODE=Y.CODE ORDER BY X.DATE_ ASC)),(SELECT TOP (1) X.DATE_ FROM LG_004_01_SLTRANS X LEFT JOIN LG_004_01_SERILOTN Y ON X.SLREF=Y.LOGICALREF WHERE SER.CODE=Y.CODE ORDER BY X.DATE_ ASC))


FROM LG_004_01_SLTRANS AS SLT
LEFT JOIN LG_004_ITEMS AS IT ON SLT.ITEMREF=IT.LOGICALREF
LEFT JOIN LG_004_01_STLINE AS STL ON SLT.STTRANSREF=STL.LOGICALREF
LEFT JOIN LG_004_01_SERILOTN AS SER ON SLT.SLREF=SER.LOGICALREF
WHERE STL.SOURCEINDEX=0
GROUP BY SLT.ITEMREF, IT.CODE, IT.NAME, SER.CODE




Uzun bir ISNULL sarmalında kaldı ama bende sonuç verdi yukarıdaki gibi :)

Çevrimdışı Recete

  • Yeni Kullanıcı
  • *
  • Karma: 0
Merhaba,

Şu anda SQL servere bağlantı sağlayamıyorum. Pazartesi günü deneyip sonucu yazacağım.
Yardımınız ve ilginiz için çok teşekkür ederim.

Not: Kullanıcı adınız altındaki hyponectia.com bağlantı adresiniz çalışmıyor.
Farklı bir adresiniz veya sosyal medya hesabınız var mı?

Çevrimdışı hyponectia

  • Logo Kullanıcısı
  • **
  • Karma: 0
  • hyponectia.com
Merhaba,

Siteyi kapatmak zorunda kaldım.

hyponectia@gmail.com'dan ulaşabilirsiniz.

İyi hafta sonları