Open ypj0202 opened 2 years ago
adres.sh
en dus adres-tabel.sql
, o.a. om die reden, niet meer gebruikt. Het SQL script adres-tabel-plus.sql
wordt eerst uitgevoerd. Vervolgens worden de andere twee adres-tabellen ('full' en 'basis') daarvan afgeleid. Het onderhouden van 3 verschillende adres-*.sql
scripts bleek teveel verschillen op te leveren.
Voor een volledig postcode CSV extract, adviseer ik adres-full te gebruiken. De stappen zijn als volgt, maar ik zal een en ander nog in PR aanbieden.
CREATE EXTENSION tablefunc
uit in je PostgreSQL databasepython3-openpyxl
en python3-xlrd
sh etl.sh -a bag_input_file=/tmp/lvbag-extract-nl.zip
psql bagv2 -f sql/adres/adres-tabel-plus.sql
psql bagv2 -f sql/adres/adres-plus2adres-full-tabel.sql
psql bagv2 -f sql/adres/adres-full2csv.sql
ls -alh /tmp/bagadres-full.csv
Ik probeer dit te doen maar het pand_id blijft leeg in de adres_plus tabel.
Bij mij werkt het wel als ik de volgende code veranderd
BEGIN;
SELECT PRINT_NOTICE('start: 37c VBO_PANDGEGEVENS: '||current_time);
drop table if exists VBO_PANDGEGEVENS;
create table VBO_PANDGEGEVENS as
SELECT
VBO.vbo_id,
VBO.typeadresseerbaarobject,
VBO.verblijfsobjectstatus,
VBO.aantalpnd_vbo as Aantal_pand_relaties_dit_VBO,
vbo.hoofdadres,
vbo.opp_verblijfsobject_m2,
VBO_WOON.woningtype as VBO_woningtype,
PND_act.woningtype,
-- fix
PND.pnd_id as PND_ID_UNIEK,
--case when VBO.aantalpnd_vbo = 1 then PND.pnd_id else null end PND_ID_UNIEK,
case when VBO.aantalpnd_vbo = 1 then PND.aantalvbo_pnd else null end aantal_vbo_relaties_dit_PND,
case when VBO.aantalpnd_vbo = 1 and PND.aantalvbo_pnd = 1 then 1 else 0 end VBO_PND_1_op_1,
case when VBO.aantalpnd_vbo = 1 and PND.aantalvbo_pnd = 1 then PND.max_vbo_id else null end VBO_ID_PND_VBO_1_op_1,
case when VBO.aantalpnd_vbo = 1 then pnd_act.opp_pand else null end as opp_pand,
case when VBO.aantalpnd_vbo = 1 and pnd_act.opp_pand >0 then round(pnd.Sum_Oppervlakte_alle_VBO_in_PAND/pnd_act.opp_pand ,2) else null end Verhouding_OPP_VBO_OPP_PND,
case when VBO.aantalpnd_vbo = 1 then PND_ACT.Omtrek_Pand else null end Omtrek_Pand,
case when VBO.aantalpnd_vbo = 1 THEN PND_ACT.pandstatus ELSE NULL END pandstatus ,
case when VBO.aantalpnd_vbo = 1 then PND_ACT.bouwjaar else null end bouwjaar
FROM
vbo_actueelbestaand_met_aantal_verbonden_pnd VBO
left outer join pnd_actueelbestaand_met_aantal_vbo PND on VBO.max_pnd_id = PND.pnd_id
left outer join pandactueelbestaand_plus_woningtype PND_ACT on PND.pnd_id = PND_ACT.identificatie
left outer join vbo_woningtype VBO_WOON on VBO_WOON.VBO_id = VBO.vbo_id;
--20200531: Query returned successfully: 9282292 rows affected, 01:15 minutes execution time.
COMMIT;
Nadat alle gegevens zijn geëxtraheerd, heb ik
/bagv2/etl/adres.sh
gedraaid om alleen de adresgegevens met postcode te extraheren. Ik ontdekte dat er12632
postcodes ontbreken in tabeladres
, maar dat ze wel bestaan in tabelnummberaanduiding
. Hier zijn enkele voorbeelden van ontbrekende postcodes:Speciaal voor: 1834VW, die kan worden gevonden door postnl
Enige assistentie zou op prijs worden gesteld :)