POWRÓT DO ARTYKUŁÓW

Wykorzystanie polecenia UNION w MS Access dla potrzeb policzenia rotacji zapasu.


Analizując sprzedaż i zapas niewątpliwie musimy wziąć pod uwagę tzw. rotację oraz wystarczalność. W praktyce dane o sprzedaży i zapasie bardzo często znajdują się w dwóch bazach danych, co jest podyktowane względami wydajnościowymi. Dla potrzeb policzenia rotacji lepiej byłoby mieć dane w jednym miejscu, ale skoro może być inaczej to z pomocą przychodzi MS Access. Zwłaszcza jeśli chcemy zbudować interaktywny raport pokazujący rotację na przestrzeni wielu okresów.

W nowej bazie danych tworzymy niezależne tabele dotyczące sprzedaży i zapasu. Przed zaimportowaniem danych warto stworzyć sprzężenie dotyczące produktu i okresu (indeks&month).

Poniższy rysunek pokazuje widok zaimportowanych danych.




Warto zwrócić uwagę, że indeks (SKU) nr 6 sprzedawał się w styczniu, mimo że nie pojawił się w zapasie na koniec analizowanych miesięcy. Z kolei indeks nr 5 pojawił się na stanie na koniec marca i nie zanotował jeszcze żadnej sprzedaży. Sytuacja taka dowodzi, że aby właściwie policzyć rotację, należy uwzględnić wszystkie kombinacje SKU w czasie. Proste połączenie naszych tabel (inner join) uwzględnia tylko tzw. część wspólną, czyli indeksy, które w danym miesiącu wystąpiły w jednej i drugiej tabeli. Standardowo z pomocą przychodzi nam połączenie sql FULL OUTER JOIN, jednak nie jest ono w accesie obsługiwane. Musimy zatem problem rozwiązać inaczej.

Łączymy tabele sales i stock raz z użyciem sprzężenia lewostronnego względem sales, a drugi raz lewostronnego względem stock, tak jak na poniższych rysunkach:






W efekcie otrzymamy dwie tabele pośrednie. Pierwsza z nich zawiera pełną sprzedaż, druga pełny zapas.




Teraz wystarczy użyć polecenia UNION, aby stworzyć kwerendę wynikową. Poniżej kody: pełny oraz uproszczony, omijający tzw. zapętlenie w nazewnictwie.




W efekcie uzyskujemy tabelę, która może posłużyć jako wsad dla tabeli przestawnej. Widzimy, że wszystkie wyjątki są prawidłowo obsłużone, a tabela przestawna pokazuje wystarczalność dla poszczególnych SKU w kolejnych miesiącach wraz z odpowiednimi podsumowaniami.