Forum Użytkownikow Subiekt GT

InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: pmatyja w Listopad 19, 2019, 04:13:04

Tytuł: Towary nie występujące na żadnym dokumencie
Wiadomość wysłana przez: pmatyja w Listopad 19, 2019, 04:13:04
Witam!

Nie znalazłem więc pozwoliłem sobie napisać.
Potrzebuję zapytanie SQL, lub może jest taka analiza wbudowana w Subiekta GT, która wyświetli mi wszystkie towary, które nie występują na żadnym dokumencie (nie zostały przyjęte fakturą zakupu i nigdy nie wystąpiły ani na paragonie ani na fakturze)
Takie towary zombie, które ktoś kiedyś wprowadził ręcznie albo jakimś średnio przemyślanym automatem do importu.
Chce po prostu posprzątać kartotekę.
Tytuł: Odp: Towary nie występujące na żadnym dokumencie
Wiadomość wysłana przez: yemet w Listopad 19, 2019, 08:45:33
SELECT 'id_towaru'=tt.tw_id
,'nazwa'=tt.tw_Nazwa
,'symbol'=tt.tw_Symbol
,'grupa'=sg.grt_Nazwa
FROM tw__Towar tt
LEFT JOIN sl_GrupaTw sg on tt.tw_IdGrupa=sg.grt_Id
WHERE NOT EXISTS (
SELECT 1
FROM dok_Pozycja dp
WHERE dp.ob_TowId = tt.tw_Id
)

Zapytanie w tej postaci nie przeszukuje dokumentów inwentaryzacyjnych, poza tym raczej niczego nie zapomniałem.


Poniżej wariant dodatkowo wykluczający towary, które wpadły na dokumenty inwentaryzacyjne:

SELECT 'id_towaru' = tt.tw_id
,'nazwa' = tt.tw_Nazwa
,'symbol' = tt.tw_Symbol
,'grupa' = sg.grt_Nazwa
FROM tw__Towar tt
LEFT JOIN sl_GrupaTw sg ON tt.tw_IdGrupa = sg.grt_Id
WHERE NOT EXISTS (
SELECT 1
FROM dok_Pozycja dp
WHERE dp.ob_TowId = tt.tw_Id
)

EXCEPT

SELECT 'id_towaru' = tt.tw_id
,'nazwa' = tt.tw_Nazwa
,'symbol' = tt.tw_Symbol
,'grupa' = sg.grt_Nazwa
FROM iw_Pozycja iwp
JOIN tw__Towar tt ON iwp.iwp_IdTowaru = tt.tw_id
LEFT JOIN sl_GrupaTw sg ON tt.tw_IdGrupa = sg.grt_Id