Closed joepke closed 2 years ago
Lijkt mij valide. @sebastic ?
Groter dan voor de einddatum is inderdaad goed.
Dit is wat ik altijd gebruik in mijn queries:
...
AND pg.begindatum <= extract_datum()
AND (pg.einddatum IS NULL OR
pg.einddatum > extract_datum())
...
Voor dit specifieke object:
bagv2=# SELECT gid,
bagv2-# identificatie,
bagv2-# voorkomenidentificatie,
bagv2-# begingeldigheid,
bagv2-# eindgeldigheid
bagv2-# FROM bag.verblijfsobjectactueelbestaand
bagv2-# WHERE identificatie = '0988010000065310'
bagv2-# ;
gid | identificatie | voorkomenidentificatie | begingeldigheid | eindgeldigheid
---------+------------------+------------------------+-----------------+----------------
7463534 | 0988010000065310 | 1 | 2022-01-08 | 2022-01-08
7463535 | 0988010000065310 | 2 | 2022-01-08 |
(2 rows)
bagv2=#
bagv2=# SELECT gid,
bagv2-# identificatie,
bagv2-# voorkomenidentificatie,
bagv2-# begingeldigheid,
bagv2-# eindgeldigheid
bagv2-# FROM bag.verblijfsobjectactueelbestaand
bagv2-# WHERE identificatie = '0988010000065310'
bagv2-# AND begingeldigheid <= extract_datum()
bagv2-# AND (eindgeldigheid IS NULL OR
bagv2(# eindgeldigheid > extract_datum())
bagv2-# ;
gid | identificatie | voorkomenidentificatie | begingeldigheid | eindgeldigheid
---------+------------------+------------------------+-----------------+----------------
7463535 | 0988010000065310 | 2 | 2022-01-08 |
(1 row)
Note: Mijn setup maakt geen gebruik van sql/finalize-tables.sql
en gebruikt het schema zoals door ogr2ogr
aangemaakt.
Oké, dank voor de reactie. Ik kan een Pull Request maken met deze wijziging (als dat handig is). De 'groter dan of gelijk aan' komt bij alle views van actueel en actueelbestaand terug in sql/create_views.sql
@joepke graag!
Als een verblijfsobject meerdere voorkomens heeft en de einddatum van het eerste en begindatum van het tweede voorkomen zijn gelijk aan de
extract_datum()
, dan worden beide voorkomens als 'actueel-bestaand' beschouwd. Het verblijfsobject komt dan 2 x voor in de tabel verblijfsobjectactueelbestaand met dezelfde identificatie.In zo'n geval had ik had ik alleen een record voor voorkomen 2 verwacht (en voorkomen 1 op 'inactief').
Voorbeeld met
identificatie = '0988010000065310'
in het extract van 2022-01-08:Als ik in de queries duik, de filtering op
eindDatumTijdvakGeldigheid >= extract_datum()
in de view-definitie vervangen dooreindDatumTijdvakGeldigheid > extract_datum()
? Dat is ook meer in lijn met de definitie van actueel volgens de docs.