Hej,
Mam pewien problem i nie wiem jak coś zapisać.
Mam już widok który generuję historię produktów, historia ta ma datę MODIFICATION_DATE i dla nie ustawiłem START_DATE i END_DATE tak że START_DATE to data MODIFICATION_DATE a END_DATE to data z kolejnego rekordu (jęsli null to 99/12/12) - dzięki temu mogę oglądać stan na dzien bo robię joina dla stanu na dzień BETWEEN START_DATE and END_DATE.
Czyli testując joina mogę taki warunek zrobić:
(to_date('18/12/31','YY/MM/DD') >= START_DATE and to_date('18/12/31','YY/MM/DD')< END_DATE)
Działa to ok.
Teraz chcę dorzucić wersje produktu - oglądam dane dla 18/12/31 - 31.12.2018
Dla przykładu mam zapytanie z wersjami (również mają start i end date):
PRODUKT || VERSION || START_DATE || END_DATE
A || Wersja globalna || 19/01/01 || 99/12/12
Czyli powyższa wersja została wpisana dopiero od 19/01/01, a dla produktu wcześniej powinien być null -- czyli oglądając stan na 18/12/31 potrzebuję widzieć null.
Podpinam do produktów LEFT_JOIN po kolumnie PRODUKT - od razu dla przykładu pokazuję mi powyższy przykład, jednak teraz chcę dodać warunek (lub pozniej joina do tabeli z czasem) - tak żeby wybrac dzień 18/12/31 - ten rekord był, ale miał nulle.
Utworzyłem taki warunek na wstępnie:
(to_date('18/12/31','YY/MM/DD') >= VER_START_DATE and to_date('18/12/31','YY/MM/DD')< VER_END_DATE)
Powyższy warunek wycina powyższy przykład tak, że rekord z produktem znika - co jest w sumie zrozumiałem bo nie ma danych dla daty mniejsze od 19/01/01
Pytanie moje: czy da się zmodyfikować warunek tak, żeby jakoś pokazać NULLE jak nie istnieje rekord? Typu sprawdź powyższy warunek jeżeli jest to pokaż rekord jeżeli nie to NULLE.
Piszę to w warunkach where bo później chcę do tego łącznego zapytania dopiąć kolumnę DATY i wpiąć w te dwa warunki tak że jak wybiorę na końcu datę 2018.12.31 to mi pokaże stan an ten dzień, a jak nie ma danych to nulle.