Sprawdzenie sprzedaży dostawy

0

Mam zagwozdkę i za bardzo nie wiem jak to ugryźć.

Mam zapytanie, które wskazuje stan magazynu na dzień w dwóch okresach.

Potrzebuję wykorzystać je do wygenerowania raportu, który pokaże czy towary, których dostawy były pokazane w zapytaniu są dalej na magazynie w nowym okresie.

Czyli, np. z raportu wynika, że na towar X była dostawa dnia 1.01.2019 i jest jeszcze 100 sztuk na magazynie na dzień 30.06.2019, natomiast na dzień 31.01.2020 są 2 sztuki, ale w drugiej dacie pojawił się towar Y, który był kupiony 1.08.2019
I teraz potrzebuję, aby jakoś pokazać czy na dzień 30.06.2020 towary z dostaw podanych wyżej występują dalej na magazynie. Próbowałem zrobić coś takiego:

where nr_dostawy in (zapytanie generujące stan na dzień)

ale powiela mi kilka razy towary

1

Nie widzę całego zapytania, więc ciężko cokolwiek podpowiedzieć, ale może na samym początku spróbuj z DISTINCT skoro dubluje Ci dane. Być może to pomoże.

2

Pokaż zapytanie. Pewnie masz jakiegoś karezjana i ci łączy dwie tabele tak jak nie powinien. Nie używaj distinct jak nie będziesz pewny, że jest to konieczne i niezbędne i wiesz co robisz.

0

Całe zapytanie opiewa na ok 500 linii więc nikt nie będzie go analizował, bez sporego zestawu danych, dlatego nie wrzuciłem go.

2

Nie wyobrażam sobie zapytania większego niż kilkanaście linii - jeśli baza magazynu nie jest projektowo spieprzona, w tym momencie myślę o implementacji FIFO i partii towaru.

EDIT: wczytałem się w pytanie. Na znanych mi systemach trudno było by przekroczyć 4-5 linii kwerendy.
Natomiast jeśli partia magazynowa jest nieistniejąca/spieprzona, to żadne tricki nie uratują np w razie przychodów/rozchodów tego samego dnia.

0

Bez modelu i zapytania, to trudno doradzić konkretne rzeczy.

Skoro i tak gdzieś zliczasz stan magazynowy, to co stoi na przeszkodzie dorzucenie prostego zliczanie/sumowania stanów w uwzględnieniem warunku daty dostawy?
Coś w stylu:

sum(
case
  when dostawa_z_dnia_X then 1 
  else 0 
end 
)

(zamiast 1 możesz po prostu dawać stan magazynowy z okresów, które Cię interesują - zależy co masz w modelu i zapytaniu...)

1 użytkowników online, w tym zalogowanych: 0, gości: 1