Cześć,
musimy w firmie zrobić archiwizację kartotek towarowych, które mają stan magazynowy 0 oraz dokumenty (RW/PW/FS/FSE/PZ), które były wystawione na dane kartoteki były przed 2021 rokiem. Jak ugryźć raport, który pokaże mi takie kartoteki? Może być jeszcze filtrowane po grupie towarowej. Na forum były już podobne raporty, natomiast nie pokazują one poprawnie danych (albo nie mogę ich poprawnie przerobić). Myslę, że taki raport przydałby się wielu użytkownikom tego forum.
Pozdrawiam.
Lista towarów - stany zerowe - archiwizacja
Moderator: mikey
Re: Lista towarów - stany zerowe - archiwizacja
Ewentualnie kolumna z datą ostatniego dokumentu też by była super, moja kolumna coś nie działa
Generalnie to co jest tutaj: viewtopic.php?f=13&t=2977&start=10 byłoby ok, natomiast nie filtruje mi po grupie i z tego co widzę, nie wrzuca mi wszystkich towarów.
Kod: Zaznacz cały
select dateadd (second, twz_datap,convert(datetime,'1990-01-01',120)) as Data
from cdn.twrkarty
join cdn.twrzasoby on twz_twrnumer=twr_gidnumer
where {filtrsql}
Re: Lista towarów - stany zerowe - archiwizacja
Wniosek taki po chwili walki, w zasobach oraz dostawach nie ma towarów, które mają 0 stan na magazynie, więc wydaje mi się, że raportu nie można uzyskać.
Re: Lista towarów - stany zerowe - archiwizacja
Po pierwsze moim zdaniem masz błąd logiczny, a mianowicie chcesz sprawdzać stany magazynu, a zapytanie robisz dla stanów do sprzedaży.
Po drugie po co wówczas sprawdzać dokumenty handlowe Rw itp. Wystarczy sprawdzać dokumenty WM i PM bo to są magazynowe.
Proszę poniżej zapytanie, które pokazuje towary ze stanem 0 (suma ze wszystkich magazynów), gdzie nie istnieją dokumenty WM/PM po 2020-12-31
Po drugie po co wówczas sprawdzać dokumenty handlowe Rw itp. Wystarczy sprawdzać dokumenty WM i PM bo to są magazynowe.
Proszę poniżej zapytanie, które pokazuje towary ze stanem 0 (suma ze wszystkich magazynów), gdzie nie istnieją dokumenty WM/PM po 2020-12-31
Kod: Zaznacz cały
DECLARE @Data INT
SELECT @Data = DATEDIFF(D,'18001228','20210101')
SELECT Twr_Kod
,Twr_Nazwa
,isnull(
sum(
CASE WHEN MaN_TrNTyp=8 THEN 0-MaS_Ilosc
WHEN MaN_TrNTyp=9 THEN CASE WHEN MaN_Stan<3 THEN 0 ELSE MaS_Ilosc END
WHEN MaN_TrNTyp=27 THEN CASE WHEN MaN_Stan < 3 AND MaS_Ilosc < 0 THEN 0 ELSE 0- MaS_Ilosc END END
),0
) AS Ilosc
,max(Twr_Jm) as Twr_Jm
FROM CDN.MagNag
JOIN CDN.MagsElem ON MaN_GIDNumer=MaS_GIDNumer
JOIN CDN.TwrKarty TK ON Twr_GIDNumer=MaS_TwrNumer
WHERE TK.Twr_Typ in (1,2) AND TK.Twr_GIDTyp = 16
AND NOT EXISTS (SELECT * FROM CDN.MagNag JOIN CDN.MagsElem ON MaN_GIDNumer=MaS_GIDNumer WHERE MaN_Data3 >= @Data AND MaS_TwrNumer = TK.Twr_GIDNumer AND MaN_GIDTyp IN (1601,1089))
GROUP BY Twr_Kod, Twr_Nazwa
HAVING isnull(
sum(
CASE WHEN MaN_TrNTyp=8 THEN 0-MaS_Ilosc
WHEN MaN_TrNTyp=9 THEN CASE WHEN MaN_Stan<3 THEN 0 ELSE MaS_Ilosc END
WHEN MaN_TrNTyp=27 THEN CASE WHEN MaN_Stan < 3 AND MaS_Ilosc < 0 THEN 0 ELSE 0- MaS_Ilosc END END
),0
) = 0
Pozdrawiam
Wojtek Cyrklewicz
Wojtek Cyrklewicz