Posts

Es werden Posts vom August, 2021 angezeigt.

SQL: (Outer-)Join von VALID FROM VALID TO / AB BIS Tabellen / Zeitraumangaben / multi-temporalen Angaben

Beim JOIN von Tabellen mit AB- und BIS-Gültigkeitsangaben ist wichtig zu beachten, dass im Ergebnis des JOIN ggfs. zusätzliche Zeilen "entstehen", da sich die zusammengeführten Zeiträume möglicherweise "aufsplitten". Ein Beispiel: Die ID 1 und 2 haben als Kennzeichen A vom 01.01.2021 bis 14.01.2021 ein "D". Ab 15.01. wechsel das Kennzeichen auf "E". Das Kennzeichen B der ID 1 wechselt am 15.02.2021 von "K" auf "L". ID 2 hat KEIN Kennzeichen B. -- Left-Outer Join - korrekt select F1.ID      , F1.KNZ_A      , F2.KNZ_B      , GREATEST (F1.AB, nvl (F2.AB, F1.AB)) AB      , LEAST (F1.BIS, nvl (F2.BIS, F1.BIS)) BIS      , F1.AB F1_AB      , F1.BIS F1_BIS      , F2.AB F2_AB      , F2.BIS F2_BIS   from FS_AB_BIS1 F1   left join FS_AB_BIS2 F2         on F1.ID = F2.ID        and F1.AB <= F2.BIS        and F1.BIS >= F2.AB   order by F1.ID      , GREATEST (F1.AB, nvl (F2.AB, F1.AB

SQL: Korrekter Join von VALID FROM TO / AB BIS Tabellen / Zeitraumangaben / multi-temporalen Angaben

Beim JOIN von Tabellen mit AB- und BIS-Gültigkeitsangaben ist wichtig zu beachten, dass im Ergebnis des JOIN ggfs. zusätzliche Zeilen "entstehen", da sich die zusammengeführten Zeiträume möglicherweise "aufsplitten". Ein Beispiel: Die ID 1 hat als Kennzeichen A vom 01.01.2021 bis 14.01.2021 ein "A". Ab 15.01. wechsel das Kennzeichen auf "B". Das Kennzeichen B dieser ID wechselt am 15.02.2021 von "K" auf "L". In getrennten Tabellen abgelegt schaut das dann so aus: select * from FS_AB_BIS1 ;         ID KNZ_A AB        BIS      ---------- ----- -------- --------          1 A      01.01.21 14.01.21          1 B      15.01.21 31.12.99 2 rows selected.     select * from FS_AB_BIS2 ;         ID KNZ_B AB        BIS      ---------- ----- -------- --------          1 K      01.01.21 14.02.21          1 L      15.02.21 31.12.99 2 rows selected.   Der Join beider Tabellen schaut dann so aus: /* Join ZWEI Tabell