Złączenie polegające na iloczynie kartezjańskim znam Marcinie od samego początku, gdy tylko usłyszałem o złączeniach tabel. De facto iloczyn kartezjański oznacza brak wskazania warunku złączenia, zatem łączenie dwóch tabel w ten sposób powoduje wygenerowanie znacznej liczby rekordów, dla każdego możliwego złączenia wartości z tabeli A z wartością z tabeli B.
Na przykład wyobraź sobie: tabela IMIONA to wykaz 5 imion (tylko jedno
pole), tabela NAZWISKA to wykaz 10 nazwisk (tylko jedno) pole to:
Select * from IMONA,
NAZWISKA;
Wygeneruje zestaw par: imię plus nazwisko, 50 takich par
będzie. Jak potrzebujemy dużej liczby
danych, to jest to podstawowe zastosowanie tego typu złączenia wskazane w literaturze.
Tu pod linką masz kwerendę tworzącą ww. tabele, przykładowe
dane i możesz zobaczyć przykładowe 50
par imion z nazwiskami.
Marcinie, nie ma co ukrywać, iż złączenia -> iloczynu kartezjańskiego
dotychczas nie używałem, aż… odkryłem, iż w ten sposób,
przy jego pomocy mogę uzupełnić brakujące stany (najczęściej zerowe) w
tabelach, które mają daty i salda, ale nie mają dat i sald jeszcze
nieistniejących oraz już nieistniejących.
Tu powrócę to problemu, zadania już przeze mnie raz
opisanego w poście:
W sumie po to go wyprodukowałem ten post, by też móc do
niego sięgać. Tym razem w celu rozwiązania zadania generuję kompletny wykaz par
danych: data stanu i kontrakt. Do tak
utworzonego wykazu dociągam łącząc po dacie stanu (z plusikiem) i po numerze
kontraktu (z plusikiem) rzeczywiste salda, ale w przypadku braku salda w danej
dacie, dla danego kontraktu wstawiam zero korzystając z funkcji NVL.
Tu też zastosuję nową technikę, utworzyłem na wykorzystując tabelę
ROZLICZENIA i zgodnie z powyższym WIDOK, do którego sięgam by obliczyć salda. I mam zmianę sald pomiędzy stanem na koniec 2012 a stanem na
koniec 2010, spłaty, bez kombinowania, bez uważania na feler „brak rozliczonych
kontraktów w danej dacie”. Bo WIDOK nie ma feleru braku sald zerowych, WIDOK ma
nie tylko salda zerowe już rozliczonych kontraktów, ale ma też salda zerowe dla
kontraktów jeszcze niezawartych :-)
Tutaj kwerendy, rozwiązanie, przy czym jeżeli jesteś stałym czytelnikiem
(mam nadzieję) to tabelkę ROZLICZENIA wraz z danymi możesz już mieć. Zacznij
wówczas analizę od KROKU 3.
Dodatkowo zamieszczam obraz dokładnie ilustrujący etapy rozwiązania, naprawdę się starałem i warto go zobaczyć, jeden z lepszych jakie tu zamieszczam na blogu :-)
Dodatkowo zamieszczam obraz dokładnie ilustrujący etapy rozwiązania, naprawdę się starałem i warto go zobaczyć, jeden z lepszych jakie tu zamieszczam na blogu :-)
W.