Compare commits
2 Commits
547ad49c35
...
53f3d7e9db
| Author | SHA1 | Date | |
|---|---|---|---|
| 53f3d7e9db | |||
| 7f3dd0e82f |
@@ -2,7 +2,7 @@ Gestion des fichiers MAJIC de la DGFIP.
|
||||
Fortement inspiré du plugin Cadastre pour QGIS.
|
||||
|
||||
La distinction se trouve dans :
|
||||
- gestion des données majic uniqument
|
||||
- gestion des données majic uniquement
|
||||
- une table de nommenclature unique
|
||||
- des données "propriétaires" cryptées (pour le RGPD)
|
||||
- un import en mode "batch"
|
||||
|
||||
1293
SQL/commun_create_metier.sql
Normal file
1293
SQL/commun_create_metier.sql
Normal file
File diff suppressed because it is too large
Load Diff
2191
SQL/commun_insert_nomenclatures.sql
Normal file
2191
SQL/commun_insert_nomenclatures.sql
Normal file
File diff suppressed because it is too large
Load Diff
49
SQL/majic3_drop_indexes.sql
Normal file
49
SQL/majic3_drop_indexes.sql
Normal file
@@ -0,0 +1,49 @@
|
||||
DROP INDEX IF EXISTS idxan_local00;
|
||||
DROP INDEX IF EXISTS idxan_local10;
|
||||
DROP INDEX IF EXISTS idx_local10_invar;
|
||||
DROP INDEX IF EXISTS idx_local00_invar;
|
||||
DROP INDEX IF EXISTS idxan_proprietaire;
|
||||
DROP INDEX IF EXISTS idxan_voie;
|
||||
DROP INDEX IF EXISTS idx_voie_codvoi;
|
||||
DROP INDEX IF EXISTS idx_lots_comptecommunal;
|
||||
DROP INDEX IF EXISTS idxan_comptecommunal;
|
||||
DROP INDEX IF EXISTS idxan_lots;
|
||||
DROP INDEX IF EXISTS idx_tempo_import;
|
||||
DROP INDEX IF EXISTS idx_lots_tempo_import;
|
||||
DROP INDEX IF EXISTS idxan_parcelle;
|
||||
DROP INDEX IF EXISTS idx_tempo_import_invar;
|
||||
DROP INDEX IF EXISTS idx_tempo_import;
|
||||
DROP INDEX IF EXISTS idxan_suf;
|
||||
DROP INDEX IF EXISTS idxan_sufexoneration;
|
||||
DROP INDEX IF EXISTS idxan_suftaxation;
|
||||
DROP INDEX IF EXISTS idxan_pev;
|
||||
DROP INDEX IF EXISTS idxan_pevexoneration;
|
||||
DROP INDEX IF EXISTS idxan_pevtaxation;
|
||||
DROP INDEX IF EXISTS idxan_pevprincipale;
|
||||
DROP INDEX IF EXISTS idxan_pevprofessionnelle;
|
||||
DROP INDEX IF EXISTS idxan_pevdependances;
|
||||
DROP INDEX IF EXISTS idxan_pdl;
|
||||
DROP INDEX IF EXISTS idxan_parcellecomposante;
|
||||
DROP INDEX IF EXISTS idx_lots_tmp1;
|
||||
DROP INDEX IF EXISTS idxan_lotslocaux;
|
||||
DROP INDEX IF EXISTS idxan_commune;
|
||||
DROP INDEX IF EXISTS idxan_majic_commune;
|
||||
DROP INDEX IF EXISTS proprietaire_dnupro_idx;
|
||||
DROP INDEX IF EXISTS proprietaire_ddenom_idx;
|
||||
DROP INDEX IF EXISTS parcelle_dnupro_idx;
|
||||
DROP INDEX IF EXISTS suf_parcelle_idx;
|
||||
DROP INDEX IF EXISTS sufexoneration_suf_idx;
|
||||
|
||||
DROP INDEX IF EXISTS idx_proprietaire_ccocom;
|
||||
DROP INDEX IF EXISTS idx_commune_ccocom;
|
||||
DROP INDEX IF EXISTS idx_majic_commune_ccocom;
|
||||
DROP INDEX IF EXISTS idx_proprietaire_ccodro;
|
||||
DROP INDEX IF EXISTS idx_proprietaire_comptecommunal;
|
||||
DROP INDEX IF EXISTS idx_local00_parcelle;
|
||||
DROP INDEX IF EXISTS idx_local00_voie;
|
||||
DROP INDEX IF EXISTS idx_local10_local00;
|
||||
DROP INDEX IF EXISTS idx_local10_comptecommunal;
|
||||
DROP INDEX IF EXISTS idx_pevexoneration_pev;
|
||||
DROP INDEX IF EXISTS idx_pevtaxation_pev;
|
||||
DROP INDEX IF EXISTS idx_parcelle_voie;
|
||||
DROP INDEX IF EXISTS idx_parcelle_comptecommunal;
|
||||
990
SQL/majic3_formatage_donnees.sql
Normal file
990
SQL/majic3_formatage_donnees.sql
Normal file
@@ -0,0 +1,990 @@
|
||||
-- FORMATAGE DONNEES : DEBUT
|
||||
BEGIN;
|
||||
|
||||
-- Traitement: parcelle
|
||||
INSERT INTO [PREFIXE]parcelle
|
||||
(
|
||||
parcelle, annee, ccodep, ccodir, ccocom, ccopre, ccosec, dnupla, dcntpa, dsrpar, dnupro, jdatat, dreflf, gpdl, cprsecr, ccosecr, dnuplar, dnupdl, gurbpa,
|
||||
dparpi, ccoarp, gparnf, gparbat, parrev, gpardp, fviti, dnvoiri, dindic, ccovoi, ccoriv, ccocif, gpafpd, ajoutcoherence,
|
||||
comptecommunal, pdl, voie,
|
||||
cconvo, dvoilib, ccocomm, ccoprem, ccosecm, dnuplam, parcellefiliation, type_filiation,
|
||||
ccoifp, inspireid,
|
||||
lot
|
||||
)
|
||||
SELECT
|
||||
REPLACE(SUBSTRING(tmp,1,15),' ','0') AS parcelle,
|
||||
'[ANNEE]' AS annee,
|
||||
SUBSTRING(tmp,1,2) AS ccodep,
|
||||
SUBSTRING(tmp,3,1) AS ccodir,
|
||||
SUBSTRING(tmp,4,3) AS ccocom,
|
||||
SUBSTRING(tmp,7,3) AS ccopre,
|
||||
SUBSTRING(tmp,10,2) AS ccosec,
|
||||
SUBSTRING(tmp,12,4) AS dnupla,
|
||||
|
||||
to_number(SUBSTRING(tmp,22,9),'000000000') AS dcntpa,
|
||||
NULL AS dsrpar, -- supprime en 2018
|
||||
SUBSTRING(tmp,32,6) AS dnupro,
|
||||
CASE WHEN trim(SUBSTRING(tmp,38,8))='' THEN NULL ELSE SUBSTRING(tmp,38,8) END AS jdatat,
|
||||
SUBSTRING(tmp,46,5) AS dreflf,
|
||||
SUBSTRING(tmp,51,1) AS gpdl,
|
||||
|
||||
SUBSTRING(tmp,52,3) AS cprsecr,
|
||||
SUBSTRING(tmp,55,2) AS ccosecr,
|
||||
SUBSTRING(tmp,57,4) AS dnuplar,
|
||||
CASE WHEN trim(SUBSTRING(tmp,61,3))='' THEN NULL ELSE SUBSTRING(tmp,61,3) END AS dnupdl,
|
||||
CASE WHEN SUBSTRING(tmp,64,1) IS NULL THEN ' ' ELSE SUBSTRING(tmp,64,1) END AS gurbpa,
|
||||
SUBSTRING(tmp,65,4) AS dparpi,
|
||||
CASE WHEN SUBSTRING(tmp,69,1) IS NULL THEN ' ' ELSE SUBSTRING(tmp,69,1) END AS ccoarp,
|
||||
CASE WHEN (SUBSTRING(tmp,70,1) IS NULL OR SUBSTRING(tmp,70,1) != '1') THEN '0' ELSE SUBSTRING(tmp,70,1) END AS gparnf,
|
||||
CASE WHEN (SUBSTRING(tmp,71,1) IS NULL OR SUBSTRING(tmp,71,1) != '1') THEN '0' ELSE SUBSTRING(tmp,71,1) END AS gparbat,
|
||||
|
||||
SUBSTRING(tmp,72,12) AS parrev,
|
||||
CASE WHEN SUBSTRING(tmp,84,01) IS NULL THEN '0' WHEN SUBSTRING(tmp,84,01) != '1' THEN '0' ELSE SUBSTRING(tmp,84,01) END AS gpardp,
|
||||
SUBSTRING(tmp,85,01) AS fviti,
|
||||
|
||||
SUBSTRING(tmp,86,4) AS dnvoiri,
|
||||
SUBSTRING(tmp,90,1) AS dindic,
|
||||
SUBSTRING(tmp,91,5) AS ccovoi,
|
||||
SUBSTRING(tmp,96,4) AS ccoriv,
|
||||
SUBSTRING(tmp,100,4) AS ccocif,
|
||||
|
||||
SUBSTRING(tmp,104,1) AS gpafpd,
|
||||
'N',
|
||||
REPLACE(SUBSTRING(tmp,1,2)||SUBSTRING(tmp,3,4)||SUBSTRING(tmp,32,6),' ', '0') AS comptecommunal,
|
||||
CASE WHEN trim(SUBSTRING(tmp,61,3))='' THEN NULL ELSE REPLACE(SUBSTRING(tmp,1,6)||SUBSTRING(tmp,52,9)||SUBSTRING(tmp,61,3),' ', '0') END AS pdl,
|
||||
CASE WHEN trim(SUBSTRING(tmp,91,5))='' THEN NULL ELSE REPLACE(SUBSTRING(tmp,1,6)||SUBSTRING(tmp,91,5)||SUBSTRING(tmp,96,4),' ', '0') END AS voie,
|
||||
|
||||
TRIM(SUBSTRING(tmp,136,4)) AS cconvo,
|
||||
SUBSTRING(tmp,140,26) AS dvoilib,
|
||||
|
||||
CASE WHEN trim(SUBSTRING(tmp,166,3))='' THEN NULL ELSE SUBSTRING(tmp,166,3) END AS ccocomm,
|
||||
CASE WHEN trim(SUBSTRING(tmp,169,3))='' THEN NULL ELSE SUBSTRING(tmp,169,3) END AS ccoprem,
|
||||
CASE WHEN trim(SUBSTRING(tmp,172,2))='' THEN NULL ELSE SUBSTRING(tmp,172,2) END AS ccosecm,
|
||||
CASE WHEN trim(SUBSTRING(tmp,174,4))='' THEN NULL ELSE SUBSTRING(tmp,174,4) END AS dnuplam,
|
||||
CASE WHEN trim(SUBSTRING(tmp,174,4))='' THEN NULL ELSE REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,166,12),' ','0') END AS parcellefiliation,
|
||||
SUBSTRING(tmp,178,1) AS type_filiation,
|
||||
|
||||
CASE WHEN trim(SUBSTRING(tmp,179,3))='' THEN NULL ELSE to_number(SUBSTRING(tmp,179,3),'999') END AS ccoifp,
|
||||
REPLACE('FR'||SUBSTRING(tmp,1,15),' ','0') AS inspireid,
|
||||
|
||||
'[LOT]' as lot
|
||||
FROM [PREFIXE]nbat WHERE SUBSTRING(tmp,20,2) ='10';
|
||||
|
||||
-- Traitement: suf
|
||||
INSERT INTO [PREFIXE]suf
|
||||
(
|
||||
suf, annee,ccodep, ccodir, ccocom, ccopre, ccosec, dnupla, ccosub, dcntsf, dnupro, gnexps, drcsub, drcsuba, ccostn, cgrnum, dsgrpf, dclssf, cnatsp,
|
||||
drgpos, ccoprel, ccosecl, dnuplal, dnupdl, dnulot, rclsi, gnidom, topja, datja, postel,
|
||||
ccortar,
|
||||
parcelle, comptecommunal, pdl, lot
|
||||
)
|
||||
SELECT
|
||||
REPLACE(SUBSTRING(tmp,1,15)||CASE WHEN SUBSTRING(tmp,16,2) IS NULL THEN '' ELSE trim(SUBSTRING(tmp,16,2)) END,' ','0') AS suf,
|
||||
'[ANNEE]',
|
||||
SUBSTRING(tmp,1,2) AS ccodep,
|
||||
SUBSTRING(tmp,3,1) AS ccodir,
|
||||
SUBSTRING(tmp,4,3) AS ccocom,
|
||||
SUBSTRING(tmp,7,3) AS ccopre,
|
||||
SUBSTRING(tmp,10,2) AS ccosec,
|
||||
SUBSTRING(tmp,12,4) AS dnupla,
|
||||
CASE WHEN SUBSTRING(tmp,16,2) IS NULL THEN '' ELSE trim(SUBSTRING(tmp,16,2)) END AS ccosub,
|
||||
|
||||
CASE WHEN trim(SUBSTRING(tmp,22,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,22,9),'999999999') END AS dcntsf,
|
||||
SUBSTRING(tmp,31,6) AS dnupro,
|
||||
CASE WHEN trim(SUBSTRING(tmp,37,2))='' THEN NULL ELSE SUBSTRING(tmp,37,2) END AS gnexps,
|
||||
CASE WHEN trim(SUBSTRING(tmp,39,10))='' THEN NULL ELSE to_number(SUBSTRING(tmp,39,10),'9999999999')/100 END AS drcsub,
|
||||
CASE WHEN trim(SUBSTRING(tmp,49,10))='' THEN NULL ELSE to_number(SUBSTRING(tmp,49,10),'9999999999')/100 END AS drcsuba,
|
||||
SUBSTRING(tmp,59,1) AS ccostn,
|
||||
CASE WHEN trim(SUBSTRING(tmp,60,2))='' THEN NULL ELSE SUBSTRING(tmp,60,2) END AS cgrnum,
|
||||
CASE WHEN trim(SUBSTRING(tmp,62,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,62,2)) END AS dsgrpf,
|
||||
SUBSTRING(tmp,64,2) AS dclssf,
|
||||
CASE WHEN trim(SUBSTRING(tmp,66,5))='' THEN NULL ELSE trim(SUBSTRING(tmp,66,5)) END AS cnatsp,
|
||||
SUBSTRING(tmp,71,1) AS drgpos,
|
||||
|
||||
SUBSTRING(tmp,72,3) AS ccoprel,
|
||||
SUBSTRING(tmp,75,2) AS ccosecl,
|
||||
SUBSTRING(tmp,77,4) AS dnuplal,
|
||||
CASE WHEN trim(SUBSTRING(tmp,81,3))='' THEN NULL ELSE SUBSTRING(tmp,81,3) END AS dnupdl,
|
||||
SUBSTRING(tmp,84,7) AS dnulot,
|
||||
|
||||
SUBSTRING(tmp,91,46) AS rclsi,
|
||||
|
||||
SUBSTRING(tmp,137,1) AS gnidom,
|
||||
SUBSTRING(tmp,138,1) AS topja,
|
||||
CASE WHEN trim(SUBSTRING(tmp,139,8))='' THEN NULL ELSE SUBSTRING(tmp,139,8) END AS datja,
|
||||
SUBSTRING(tmp,147,1) AS postel,
|
||||
CASE WHEN trim(SUBSTRING(tmp,148,3))='' THEN NULL ELSE to_number(SUBSTRING(tmp,148,3),'999') END AS ccortar,
|
||||
|
||||
REPLACE(SUBSTRING(tmp,1,15),' ', '0') AS parcelle,
|
||||
REPLACE(SUBSTRING(tmp,1,2)||SUBSTRING(tmp,3,4)||SUBSTRING(tmp,31,6),' ', '0') AS comptecommunal,
|
||||
CASE WHEN trim(SUBSTRING(tmp,81,3))='' THEN NULL ELSE REPLACE(SUBSTRING(tmp,1,6)||SUBSTRING(tmp,72,9)||SUBSTRING(tmp,81,3),' ', '0') END AS pdl,
|
||||
'[LOT]' as lot
|
||||
FROM [PREFIXE]nbat WHERE SUBSTRING(tmp,20,2) ='21';
|
||||
|
||||
-- Traitement: sufexoneration
|
||||
INSERT INTO [PREFIXE]sufexoneration
|
||||
(
|
||||
sufexoneration, annee, ccodep, ccodir, ccocom, ccopre, ccosec, dnupla, ccosub, rnuexn, vecexn, ccolloc, pexn, gnexts, jandeb, jfinex, fcexn, fcexna, rcexna,
|
||||
rcexnba, mpexnba, suf, lot
|
||||
)
|
||||
SELECT
|
||||
REPLACE(SUBSTRING(tmp,1,15)||CASE WHEN SUBSTRING(tmp,16,2) IS NULL THEN '' ELSE trim(SUBSTRING(tmp,16,2)) END||SUBSTRING(tmp,18,2),' ','0') AS sufexoneration,
|
||||
'[ANNEE]',
|
||||
SUBSTRING(tmp,1,2) AS ccodep,
|
||||
SUBSTRING(tmp,3,1) AS ccodir,
|
||||
SUBSTRING(tmp,4,3) AS ccocom,
|
||||
SUBSTRING(tmp,7,3) AS ccopre,
|
||||
SUBSTRING(tmp,10,2) AS ccosec,
|
||||
SUBSTRING(tmp,12,4) AS dnupla,
|
||||
CASE WHEN SUBSTRING(tmp,16,2) IS NULL THEN '' ELSE trim(SUBSTRING(tmp,16,2)) END AS ccosub,
|
||||
SUBSTRING(tmp,18,2) AS rnuexn,
|
||||
CASE WHEN trim(SUBSTRING(tmp,22,10))='' THEN NULL ELSE to_number(SUBSTRING(tmp,22,10),'9999999999')/100 END AS vecexn,
|
||||
CASE WHEN trim(SUBSTRING(tmp,32,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,32,2)) END AS ccolloc,
|
||||
CASE WHEN trim(SUBSTRING(tmp,34,5))='' THEN NULL ELSE to_number(SUBSTRING(tmp,34,5),'99999') END AS pexn,
|
||||
CASE WHEN trim(SUBSTRING(tmp,39,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,39,2)) END AS gnexts,
|
||||
SUBSTRING(tmp,41,4) AS jandeb,
|
||||
SUBSTRING(tmp,45,4) AS jfinex,
|
||||
SUBSTRING(tmp,49,10) AS fcexn,
|
||||
SUBSTRING(tmp,59,10) AS fcexna,
|
||||
SUBSTRING(tmp,69,10) AS rcexna,
|
||||
CASE WHEN trim(SUBSTRING(tmp,79,10))='' THEN NULL ELSE to_number(SUBSTRING(tmp,79,10),'9999999999')/100 END AS rcexnba,
|
||||
SUBSTRING(tmp,90,10) AS mpexnba,
|
||||
REPLACE(SUBSTRING(tmp,1,15)||CASE WHEN SUBSTRING(tmp,16,2) IS NULL THEN '' ELSE trim(SUBSTRING(tmp,16,2)) END,' ', '0') AS suf,
|
||||
'[LOT]' as lot
|
||||
FROM [PREFIXE]nbat WHERE SUBSTRING(tmp,20,2) ='30';
|
||||
|
||||
-- Traitement: suftaxation
|
||||
INSERT INTO [PREFIXE]suftaxation
|
||||
(
|
||||
suftaxation, annee,ccodep, ccodir, ccocom, ccopre, ccosec, dnupla, ccosub, c1majposa, c1bisufad, c2majposa, c2bisufad, c3majposa, c3bisufad, c4majposa, c4bisufad, cntmajtc,
|
||||
suf, lot
|
||||
)
|
||||
SELECT
|
||||
REPLACE(SUBSTRING(tmp,1,15)||CASE WHEN SUBSTRING(tmp,16,2) IS NULL THEN '' ELSE trim(SUBSTRING(tmp,16,2)) END,' ','0') AS suftaxation,
|
||||
'[ANNEE]',
|
||||
SUBSTRING(tmp,1,2) AS ccodep,
|
||||
SUBSTRING(tmp,3,1) AS ccodir,
|
||||
SUBSTRING(tmp,4,3) AS ccocom,
|
||||
SUBSTRING(tmp,7,3) AS ccopre,
|
||||
SUBSTRING(tmp,10,2) AS ccosec,
|
||||
SUBSTRING(tmp,12,4) AS dnupla,
|
||||
CASE WHEN SUBSTRING(tmp,16,2) IS NULL THEN '' ELSE trim(SUBSTRING(tmp,16,2)) END AS ccosub,
|
||||
CASE WHEN trim(SUBSTRING(tmp,23,10))='' THEN NULL ELSE to_number(SUBSTRING(tmp,23,10),'9999999999')/100 END AS c1majposa,
|
||||
CASE WHEN trim(SUBSTRING(tmp,34,10))='' THEN NULL ELSE to_number(SUBSTRING(tmp,34,10),'9999999999')/100 END AS c1bisufad,
|
||||
CASE WHEN trim(SUBSTRING(tmp,45,10))='' THEN NULL ELSE to_number(SUBSTRING(tmp,45,10),'9999999999')/100 END AS c2majposa,
|
||||
CASE WHEN trim(SUBSTRING(tmp,56,10))='' THEN NULL ELSE to_number(SUBSTRING(tmp,56,10),'9999999999')/100 END AS c2bisufad,
|
||||
CASE WHEN trim(SUBSTRING(tmp,67,10))='' THEN NULL ELSE to_number(SUBSTRING(tmp,67,10),'9999999999')/100 END AS c3majposa,
|
||||
CASE WHEN trim(SUBSTRING(tmp,78,10))='' THEN NULL ELSE to_number(SUBSTRING(tmp,78,10),'9999999999')/100 END AS c3bisufad,
|
||||
CASE WHEN trim(SUBSTRING(tmp,89,10))='' THEN NULL ELSE to_number(SUBSTRING(tmp,89,10),'9999999999')/100 END AS c4majposa,
|
||||
CASE WHEN trim(SUBSTRING(tmp,100,10))='' THEN NULL ELSE to_number(SUBSTRING(tmp,100,10),'9999999999')/100 END AS c4bisufad,
|
||||
CASE WHEN trim(SUBSTRING(tmp,110,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,110,9),'999999999') END cntmajtc,
|
||||
REPLACE(SUBSTRING(tmp,1,15)||CASE WHEN SUBSTRING(tmp,16,2) IS NULL THEN '' ELSE trim(SUBSTRING(tmp,16,2)) END,' ', '0') AS suf,
|
||||
'[LOT]' as lot
|
||||
FROM [PREFIXE]nbat WHERE SUBSTRING(tmp,20,2) ='36';
|
||||
|
||||
-- Traitement: local00
|
||||
INSERT INTO [PREFIXE]local00
|
||||
(
|
||||
local00, annee, ccodep, ccodir, ccocom, invar, ccopre, ccosec, dnupla, dnubat, descr, dniv, dpor, ccoriv, ccovoi, dnvoiri, dindic, ccocif, dvoilib, cleinvar,
|
||||
locinc, parcelle, voie, lot
|
||||
)
|
||||
SELECT
|
||||
REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10),' ','0') AS local00,
|
||||
'[ANNEE]',
|
||||
SUBSTRING(tmp,1,2) AS ccodep,
|
||||
SUBSTRING(tmp,3,1) AS ccodir,
|
||||
SUBSTRING(tmp,4,3) AS ccocom,
|
||||
SUBSTRING(tmp,7,10) AS invar,
|
||||
|
||||
SUBSTRING(tmp,36,3) AS ccopre,
|
||||
SUBSTRING(tmp,39,2) AS ccosec,
|
||||
SUBSTRING(tmp,41,4) AS dnupla,
|
||||
|
||||
SUBSTRING(tmp,46,2) AS dnubat,
|
||||
SUBSTRING(tmp,48,2) AS descr,
|
||||
SUBSTRING(tmp,50,2) AS dniv,
|
||||
SUBSTRING(tmp,52,5) AS dpor,
|
||||
SUBSTRING(tmp,57,4) AS ccoriv,
|
||||
|
||||
SUBSTRING(tmp,62,5) AS ccovoi,
|
||||
SUBSTRING(tmp,67,4) AS dnvoiri,
|
||||
SUBSTRING(tmp,71,1) AS dindic,
|
||||
SUBSTRING(tmp,72,4) AS ccocif,
|
||||
SUBSTRING(tmp,76,30) AS dvoilib,
|
||||
SUBSTRING(tmp,106,1) AS cleinvar,
|
||||
|
||||
SUBSTRING(tmp,107,1) AS locinc,
|
||||
REPLACE(SUBSTRING(tmp,1,6)||SUBSTRING(tmp,36,9),' ', '0') AS parcelle,
|
||||
REPLACE(SUBSTRING(tmp,1,6)||SUBSTRING(tmp,62,5),' ', '0')||SUBSTRING(tmp,57,4) AS voie,
|
||||
'[LOT]' as lot
|
||||
FROM [PREFIXE]bati WHERE SUBSTRING(tmp,31,2) ='00';
|
||||
|
||||
-- Traitement: local10
|
||||
INSERT INTO [PREFIXE]local10
|
||||
(
|
||||
local10, annee,ccodep, ccodir, ccocom, invar, gpdl, dsrpar, dnupro, jdatat, dnufnl, ccoeva, ccitlv, dteloc, gtauom, dcomrd, ccoplc, cconlc, dvltrt,
|
||||
ccoape, cc48lc, dloy48a, top48a, dnatlc, dnupas, gnexcf, dtaucf, cchpr, jannat, dnbniv, hlmsem, postel, dnatcg, jdatcgl, dnutbx, dvltla,
|
||||
janloc, ccsloc, fburx, gimtom, cbtabt, jdtabt, jrtabt, jacloc, cconac,
|
||||
toprev, ccoifp,
|
||||
comptecommunal, lot
|
||||
)
|
||||
SELECT
|
||||
REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10),' ','0') AS local10,
|
||||
'[ANNEE]',
|
||||
SUBSTRING(tmp,1,2) AS ccodep,
|
||||
SUBSTRING(tmp,3,1) AS ccodir,
|
||||
SUBSTRING(tmp,4,3) AS ccocom,
|
||||
SUBSTRING(tmp,7,10) AS invar,
|
||||
|
||||
SUBSTRING(tmp,36,1) AS gpdl,
|
||||
NULL AS dsrpar, -- supprime
|
||||
SUBSTRING(tmp,38,6) AS dnupro,
|
||||
CASE WHEN trim(SUBSTRING(tmp,44,8))='' THEN NULL ELSE SUBSTRING(tmp,44,8) END AS jdatat,
|
||||
SUBSTRING(tmp,52,6) AS dnufnl,
|
||||
CASE WHEN trim(SUBSTRING(tmp,58,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,58,1)) END AS ccoeva,
|
||||
|
||||
SUBSTRING(tmp,59,1) AS ccitlv,
|
||||
|
||||
CASE WHEN trim(SUBSTRING(tmp,60,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,60,1)) END AS dteloc,
|
||||
SUBSTRING(tmp,61,2) AS gtauom,
|
||||
SUBSTRING(tmp,63,3) AS dcomrd,
|
||||
SUBSTRING(tmp,66,1) AS ccoplc,
|
||||
CASE WHEN trim(SUBSTRING(tmp,67,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,67,2)) END AS cconlc,
|
||||
CASE WHEN trim(SUBSTRING(tmp,69,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,69,9),'999999999') END AS dvltrt,
|
||||
|
||||
SUBSTRING(tmp,78,4) AS ccoape,
|
||||
|
||||
SUBSTRING(tmp,82,2) AS cc48lc,
|
||||
CASE WHEN trim(SUBSTRING(tmp,84,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,84,9),'999999999') END AS dloy48a,
|
||||
CASE WHEN trim(SUBSTRING(tmp,93,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,93,1)) END AS top48a,
|
||||
CASE WHEN trim(SUBSTRING(tmp,94,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,94,1)) END AS dnatlc,
|
||||
|
||||
SUBSTRING(tmp,95,8) AS dnupas,
|
||||
SUBSTRING(tmp,103,2) AS gnexcf,
|
||||
SUBSTRING(tmp,105,3) AS dtaucf,
|
||||
|
||||
SUBSTRING(tmp,108,1) AS cchpr,
|
||||
SUBSTRING(tmp,109,4) AS jannat,
|
||||
SUBSTRING(tmp,113,2) AS dnbniv,
|
||||
CASE WHEN trim(SUBSTRING(tmp,115,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,115,1)) END AS hlmsem,
|
||||
SUBSTRING(tmp,116,1) AS postel,
|
||||
SUBSTRING(tmp,117,2) AS dnatcg,
|
||||
CASE WHEN trim(SUBSTRING(tmp,119,8))='' THEN NULL ELSE SUBSTRING(tmp,119,8) END AS jdatcgl,
|
||||
|
||||
SUBSTRING(tmp,127,6) AS dnutbx,
|
||||
SUBSTRING(tmp,133,9) AS dvltla,
|
||||
SUBSTRING(tmp,142,4) AS janloc,
|
||||
SUBSTRING(tmp,146,2) AS ccsloc,
|
||||
|
||||
CASE WHEN trim(SUBSTRING(tmp,148,1))='' THEN NULL ELSE to_number(SUBSTRING(tmp,148,1),'9') END AS fburx,
|
||||
SUBSTRING(tmp,149,1) AS gimtom,
|
||||
SUBSTRING(tmp,150,2) AS cbtabt,
|
||||
SUBSTRING(tmp,152,4) AS jdtabt,
|
||||
SUBSTRING(tmp,156,4) AS jrtabt,
|
||||
|
||||
SUBSTRING(tmp,160,4) AS jacloc,
|
||||
|
||||
SUBSTRING(tmp,169,5) AS cconac,
|
||||
SUBSTRING(tmp,174,1) AS toprev,
|
||||
CASE WHEN trim(SUBSTRING(tmp,175,3))='' THEN NULL ELSE to_number(SUBSTRING(tmp,175,3),'999') END AS ccoifp,
|
||||
|
||||
REPLACE(SUBSTRING(tmp,1,2)||SUBSTRING(tmp,3,4)||SUBSTRING(tmp,38,6),' ', '0') AS comptecommunal,
|
||||
'[LOT]' as lot
|
||||
FROM [PREFIXE]bati WHERE SUBSTRING(tmp,31,2) ='10';
|
||||
|
||||
CREATE INDEX idxan_local00 ON local00 (annee);
|
||||
CREATE INDEX idxan_local10 ON local10 (annee);
|
||||
CREATE INDEX idx_local10_invar ON [PREFIXE]local10 (invar);
|
||||
CREATE INDEX idx_local00_invar ON [PREFIXE]local00 (invar);
|
||||
UPDATE [PREFIXE]local10 SET
|
||||
ccopre = local00.ccopre,
|
||||
ccosec = local00.ccosec,
|
||||
dnupla = local00.dnupla,
|
||||
ccoriv = local00.ccoriv,
|
||||
ccovoi = local00.ccovoi,
|
||||
dnvoiri = local00.dnvoiri,
|
||||
local00 = local10.ccodep||local10.ccodir||local10.invar,
|
||||
parcelle = REPLACE(local10.ccodep||local10.ccodir||local10.ccocom||local00.ccopre||local00.ccosec||local00.dnupla,' ', '0'),
|
||||
voie= REPLACE(local10.ccodep||local10.ccodir||local10.ccocom||local00.ccovoi||local00.ccoriv,' ', '0')
|
||||
FROM [PREFIXE]local00
|
||||
WHERE local00.ccodep = local10.ccodep AND local00.ccodir = local10.ccodir AND local00.invar = local10.invar AND local00.annee='[ANNEE]' AND local10.annee='[ANNEE]';
|
||||
|
||||
-- Traitement: pev
|
||||
INSERT INTO [PREFIXE]pev
|
||||
(
|
||||
pev, annee, ccodep, ccodir, ccocom, invar,
|
||||
dnupev,
|
||||
ccoaff, ccostb, dcapec, dcetlc,
|
||||
ccocac, dnutrf, dcfloc, dsupot, dvlper, dvlpera, gnexpl,
|
||||
ccthp, retimp, dnuref, gnidom,
|
||||
dvltpe,
|
||||
tpevtieom, ccortar, ccorvl, dtaurv, dcmloc, dcsplca, dcsglca, dcralca,
|
||||
local10, lot
|
||||
)
|
||||
SELECT
|
||||
REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3),' ','0') AS pev,
|
||||
'[ANNEE]',
|
||||
SUBSTRING(tmp,1,2) AS ccodep,
|
||||
SUBSTRING(tmp,3,1) AS ccodir,
|
||||
SUBSTRING(tmp,4,3) AS ccocom,
|
||||
SUBSTRING(tmp,7,10) AS invar,
|
||||
|
||||
SUBSTRING(tmp,28,3) AS dnupev,
|
||||
|
||||
CASE WHEN trim(SUBSTRING(tmp,36,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,36,1)) END AS ccoaff,
|
||||
SUBSTRING(tmp,37,1) AS ccostb,
|
||||
SUBSTRING(tmp,38,2) AS dcapec,
|
||||
CASE WHEN trim(SUBSTRING(tmp,40,3))='' THEN NULL ELSE to_number(SUBSTRING(tmp,40,3),'999')/100 END AS dcetlc,
|
||||
|
||||
SUBSTRING(tmp,46,4) AS ccocac,
|
||||
SUBSTRING(tmp,50,2) AS dnutrf,
|
||||
CASE WHEN trim(SUBSTRING(tmp,52,3))='' THEN NULL ELSE to_number(SUBSTRING(tmp,52,3),'999') END AS dcfloc,
|
||||
CASE WHEN trim(SUBSTRING(tmp,55,6))='' THEN NULL ELSE to_number(SUBSTRING(tmp,55,6),'999999') END AS dsupot,
|
||||
CASE WHEN trim(SUBSTRING(tmp,61,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,61,9),'999999999') END AS dvlper,
|
||||
CASE when trim(SUBSTRING(tmp,70,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,70,9),'999999999') END AS dvlpera,
|
||||
CASE WHEN trim(SUBSTRING(tmp,79,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,79,2)) END AS gnexpl,
|
||||
|
||||
SUBSTRING(tmp,111,1) AS ccthp,
|
||||
SUBSTRING(tmp,112,1) AS retimp,
|
||||
SUBSTRING(tmp,113,3) AS dnuref,
|
||||
SUBSTRING(tmp,116,1) AS gnidom,
|
||||
|
||||
CASE when trim(SUBSTRING(tmp,130,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,130,9),'999999999') END AS dvltpe,
|
||||
|
||||
CASE WHEN trim(SUBSTRING(tmp,144,1))='' THEN NULL ELSE to_number(SUBSTRING(tmp,144,1),'9') END AS tpevtieom,
|
||||
|
||||
CASE WHEN trim(SUBSTRING(tmp,145,3))='' THEN NULL ELSE to_number(SUBSTRING(tmp,145,3),'999') END AS ccortar,
|
||||
SUBSTRING(tmp,148,2) AS ccorvl,
|
||||
CASE WHEN trim(SUBSTRING(tmp,150,3))='' THEN NULL ELSE to_number(SUBSTRING(tmp,150,3),'999') END AS dtaurv,
|
||||
CASE WHEN trim(SUBSTRING(tmp,153,3))='' THEN NULL ELSE to_number(SUBSTRING(tmp,153,3),'999') END AS dcmloc,
|
||||
SUBSTRING(tmp,156,5) AS dcsplca,
|
||||
SUBSTRING(tmp,161,5) AS dcsglca,
|
||||
SUBSTRING(tmp,166,5) AS dcralca,
|
||||
|
||||
|
||||
SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10) AS local10,
|
||||
'[LOT]' as lot
|
||||
FROM [PREFIXE]bati WHERE SUBSTRING(tmp,31,2) ='21';
|
||||
|
||||
-- Traitement: pevexoneration
|
||||
INSERT INTO [PREFIXE]pevexoneration
|
||||
(
|
||||
pevexoneration, annee,ccodep, ccodir, ccocom, invar, Janbil, dnupev, dnuexb, ccolloc, pexb, gnextl, jandeb, janimp, vecdif, vecdifa, fcexb, fcexba, rcexba,
|
||||
dvldif2, dvldif2a, fcexb2, fcexba2, rcexba2,
|
||||
valplaf,
|
||||
pev, lot
|
||||
)
|
||||
SELECT
|
||||
REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3)||SUBSTRING(tmp,33,3)||CASE WHEN SUBSTRING(tmp,24,4) IS NOT NULL THEN trim(SUBSTRING(tmp,24,4)) ELSE SUBSTRING(tmp,24,4) END, ' ','0') AS pevexoneration,
|
||||
'[ANNEE]',
|
||||
SUBSTRING(tmp,1,2) AS ccodep,
|
||||
SUBSTRING(tmp,3,1) AS ccodir,
|
||||
SUBSTRING(tmp,4,3) AS ccocom,
|
||||
SUBSTRING(tmp,7,10) AS invar,
|
||||
|
||||
CASE WHEN SUBSTRING(tmp,24,4) IS NOT NULL THEN trim(SUBSTRING(tmp,24,4)) ELSE SUBSTRING(tmp,24,4) END AS janbil,
|
||||
SUBSTRING(tmp,28,3) AS dnupev,
|
||||
|
||||
SUBSTRING(tmp,33,3) AS dnuexb,
|
||||
CASE WHEN trim(SUBSTRING(tmp,36,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,36,2)) END AS ccolloc,
|
||||
CASE WHEN trim(SUBSTRING(tmp,38,5))='' THEN NULL ELSE to_number(SUBSTRING(tmp,38,5),'99999')/100 END AS pexb,
|
||||
CASE WHEN trim(SUBSTRING(tmp,43,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,43,2)) END AS gnextl,
|
||||
SUBSTRING(tmp,45,4) AS jandeb,
|
||||
SUBSTRING(tmp,49,4) AS janimp,
|
||||
|
||||
SUBSTRING(tmp,53,9) AS vecdif,
|
||||
SUBSTRING(tmp,63,9) AS vecdifa,
|
||||
SUBSTRING(tmp,73,9) AS fcexb,
|
||||
SUBSTRING(tmp,83,9) AS fcexba,
|
||||
SUBSTRING(tmp,93,9) AS rcexba,
|
||||
|
||||
CASE WHEN trim(SUBSTRING(tmp,103,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,103,9),'999999999') END AS dvldif2,
|
||||
|
||||
CASE WHEN trim(SUBSTRING(tmp,113,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,113,9),'999999999') END AS dvldif2a,
|
||||
|
||||
CASE WHEN trim(SUBSTRING(tmp,123,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,123,9),'999999999') END AS fcexb2,
|
||||
|
||||
CASE WHEN trim(SUBSTRING(tmp,133,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,133,9),'999999999') END AS fcexba2,
|
||||
|
||||
CASE WHEN trim(SUBSTRING(tmp,143,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,143,9),'999999999') END AS rcexba2,
|
||||
|
||||
CASE WHEN trim(SUBSTRING(tmp,173,10))='' THEN NULL ELSE SUBSTRING(tmp,173,10) END AS valplaf,
|
||||
|
||||
|
||||
REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3),' ', '0') AS pev,
|
||||
|
||||
'[LOT]' as lot
|
||||
FROM [PREFIXE]bati WHERE SUBSTRING(tmp,31,2) ='30';
|
||||
|
||||
-- Traitement: pevtaxation
|
||||
INSERT INTO [PREFIXE]pevtaxation
|
||||
(
|
||||
pevtaxation, annee,ccodep, ccodir, ccocom, invar, janbil, dnupev, co_vlbai, co_vlbaia, co_bipevla, de_vlbai, de_vlbaia, de_bipevla,
|
||||
tse_vlbai, tse_vlbaia, tse_bipevla, gp_vlbai, gp_vlbaia, gp_bipevla, bateom, baomec,
|
||||
mvltieomx,
|
||||
pev, lot
|
||||
)
|
||||
SELECT
|
||||
REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3), ' ', '0') AS pevtaxation,
|
||||
'[ANNEE]',
|
||||
SUBSTRING(tmp,1,2) AS ccodep,
|
||||
SUBSTRING(tmp,3,1) AS ccodir,
|
||||
SUBSTRING(tmp,4,3) AS ccocom,
|
||||
SUBSTRING(tmp,7,10) AS invar,
|
||||
|
||||
SUBSTRING(tmp,24,4) AS janbil,
|
||||
SUBSTRING(tmp,28,3) AS dnupev,
|
||||
|
||||
CASE WHEN trim(SUBSTRING(tmp,36,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,36,9),'999999999') END AS co_vlbai,
|
||||
|
||||
CASE WHEN trim(SUBSTRING(tmp,46,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,46,9),'999999999') END AS co_vlbaia,
|
||||
|
||||
CASE WHEN trim(SUBSTRING(tmp,56,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,56,9),'999999999') END AS co_bipevla,
|
||||
|
||||
CASE WHEN trim(SUBSTRING(tmp,66,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,66,9),'999999999') END AS de_vlbai,
|
||||
CASE WHEN trim(SUBSTRING(tmp,76,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,76,9),'999999999') END AS de_vlbaia,
|
||||
CASE WHEN trim(SUBSTRING(tmp,86,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,86,9),'999999999') END AS de_bipevla,
|
||||
CASE WHEN trim(SUBSTRING(tmp,96,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,96,9),'999999999') END AS tse_vlbai,
|
||||
CASE WHEN trim(SUBSTRING(tmp,106,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,106,9),'999999999') END AS tse_vlbaia,
|
||||
CASE WHEN trim(SUBSTRING(tmp,116,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,116,9),'999999999') END AS tse_bipevla,
|
||||
CASE WHEN trim(SUBSTRING(tmp,126,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,126,9),'999999999') END AS gp_vlbai,
|
||||
CASE WHEN trim(SUBSTRING(tmp,136,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,136,9),'999999999') END AS gp_vlbaia,
|
||||
CASE WHEN trim(SUBSTRING(tmp,146,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,146,9),'999999999') END AS gp_bipevla,
|
||||
CASE WHEN trim(SUBSTRING(tmp,156,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,156,9),'999999999') END AS bateom,
|
||||
|
||||
CASE WHEN trim(SUBSTRING(tmp,166,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,166,9),'999999999') END AS baomec,
|
||||
CASE WHEN trim(SUBSTRING(tmp,175,6))='' THEN NULL ELSE to_number(SUBSTRING(tmp,175,6),'999999') END AS mvltieomx,
|
||||
|
||||
REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3),' ', '0') AS pev,
|
||||
'[LOT]' as lot
|
||||
FROM [PREFIXE]bati WHERE SUBSTRING(tmp,31,2) ='36';
|
||||
|
||||
-- Traitement: pevprincipale
|
||||
INSERT INTO [PREFIXE]pevprincipale
|
||||
(
|
||||
pevprincipale, annee,ccodep, ccodir, ccocom, invar, dnupev, dnudes, dep1_cconad, dep1_dsueic, dep1_dcimei, dep2_cconad, dep2_dsueic, dep2_dcimei, dep3_cconad,
|
||||
dep3_dsueic, dep3_dcimei, dep4_cconad, dep4_dsueic, dep4_dcimei, geaulc, gelelc, gesclc, ggazlc, gasclc, gchclc, gvorlc, gteglc, dnbbai, dnbdou,
|
||||
dnblav, dnbwc, deqdha, dnbppr, dnbsam, dnbcha, dnbcu8, dnbcu9, dnbsea, dnbann, dnbpdc, dsupdc, dmatgm, dmatto, jannat, detent, dnbniv,
|
||||
pev, lot
|
||||
)
|
||||
SELECT
|
||||
REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3)||CASE WHEN SUBSTRING(tmp,33,3) IS NOT NULL THEN trim(SUBSTRING(tmp,33,3)) ELSE SUBSTRING(tmp,33,3) END,' ','0') AS pevprincipale,
|
||||
'[ANNEE]' as annee,
|
||||
SUBSTRING(tmp,1,2) AS ccodep,
|
||||
SUBSTRING(tmp,3,1) AS ccodir,
|
||||
SUBSTRING(tmp,4,3) AS ccocom,
|
||||
SUBSTRING(tmp,7,10) AS invar,
|
||||
|
||||
SUBSTRING(tmp,28,3) AS dnupev,
|
||||
|
||||
CASE WHEN SUBSTRING(tmp,33,3) IS NOT NULL THEN trim(SUBSTRING(tmp,33,3)) ELSE SUBSTRING(tmp,33,3) END AS dnudes,
|
||||
CASE WHEN trim(SUBSTRING(tmp,36,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,36,2)) END AS dep1_cconad,
|
||||
CASE WHEN trim(SUBSTRING(tmp,38,6))='' THEN NULL ELSE to_number(SUBSTRING(tmp,38,6),'999999') END AS dep1_dsueic,
|
||||
CASE WHEN trim(SUBSTRING(tmp,44,2))='' THEN NULL ELSE to_number(SUBSTRING(tmp,44,2),'99')/10 END AS dep1_dcimei,
|
||||
CASE WHEN trim(SUBSTRING(tmp,46,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,46,2)) END AS dep2_cconad,
|
||||
CASE WHEN trim(SUBSTRING(tmp,48,6))='' THEN NULL ELSE to_number(SUBSTRING(tmp,48,6),'999999') END AS dep2_dsueic,
|
||||
CASE WHEN trim(SUBSTRING(tmp,54,2))='' THEN NULL ELSE to_number(SUBSTRING(tmp,54,2),'99')/10 END AS dep2_dcimei,
|
||||
CASE WHEN trim(SUBSTRING(tmp,56,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,56,2)) END AS dep3_cconad,
|
||||
CASE WHEN trim(SUBSTRING(tmp,58,6))='' THEN NULL ELSE to_number(SUBSTRING(tmp,58,6),'999999') END AS dep3_dsueic,
|
||||
CASE WHEN trim(SUBSTRING(tmp,64,2))='' THEN NULL ELSE to_number(SUBSTRING(tmp,64,2),'99')/10 END AS dep3_dcimei,
|
||||
CASE WHEN trim(SUBSTRING(tmp,66,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,66,2)) END AS dep4_cconad,
|
||||
CASE WHEN trim(SUBSTRING(tmp,68,6))='' THEN NULL ELSE to_number(SUBSTRING(tmp,68,6),'999999') END AS dep4_dsueic,
|
||||
CASE WHEN trim(SUBSTRING(tmp,74,2))='' THEN NULL ELSE to_number(SUBSTRING(tmp,74,2),'99')/10 END AS dep4_dcimei,
|
||||
|
||||
SUBSTRING(tmp,76,1) AS geaulc,
|
||||
SUBSTRING(tmp,77,1) AS gelelc,
|
||||
SUBSTRING(tmp,78,1) AS gesclc,
|
||||
SUBSTRING(tmp,79,1) AS ggazlc,
|
||||
SUBSTRING(tmp,80,1) AS gasclc,
|
||||
SUBSTRING(tmp,81,1) AS gchclc,
|
||||
SUBSTRING(tmp,82,1) AS gvorlc,
|
||||
SUBSTRING(tmp,83,1) AS gteglc,
|
||||
SUBSTRING(tmp,84,2) AS dnbbai,
|
||||
SUBSTRING(tmp,86,2) AS dnbdou,
|
||||
SUBSTRING(tmp,88,2) AS dnblav,
|
||||
SUBSTRING(tmp,90,2) AS dnbwc,
|
||||
CASE WHEN trim(SUBSTRING(tmp,92,3))='' THEN NULL ELSE to_number(SUBSTRING(tmp,92,3),'999') END AS deqdha,
|
||||
|
||||
SUBSTRING(tmp,95,2) AS dnbppr,
|
||||
SUBSTRING(tmp,97,2) AS dnbsam,
|
||||
SUBSTRING(tmp,99,2) AS dnbcha,
|
||||
SUBSTRING(tmp,101,2) AS dnbcu8,
|
||||
SUBSTRING(tmp,103,2) AS dnbcu9,
|
||||
SUBSTRING(tmp,105,2) AS dnbsea,
|
||||
SUBSTRING(tmp,107,2) AS dnbann,
|
||||
SUBSTRING(tmp,109,2) AS dnbpdc,
|
||||
CASE WHEN trim(SUBSTRING(tmp,111,6))='' THEN NULL ELSE to_number(SUBSTRING(tmp,111,6),'999999') END AS dsupdc,
|
||||
|
||||
SUBSTRING(tmp,117,2) AS dmatgm,
|
||||
SUBSTRING(tmp,119,2) AS dmatto,
|
||||
SUBSTRING(tmp,121,4) AS jannat,
|
||||
SUBSTRING(tmp,125,1) AS detent,
|
||||
SUBSTRING(tmp,126,2) AS dnbniv,
|
||||
|
||||
REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3),' ', '0') AS pev,
|
||||
'[LOT]' as lot
|
||||
FROM [PREFIXE]bati WHERE SUBSTRING(tmp,31,2) ='40';
|
||||
|
||||
-- Traitement: pevprofessionnelle
|
||||
INSERT INTO [PREFIXE]pevprofessionnelle
|
||||
(
|
||||
pevprofessionnelle, annee,
|
||||
ccodep, ccodir, ccocom, invar,
|
||||
dnupev,
|
||||
dsupot, dsup1, dsup2, dsup3,
|
||||
dsupk1, dsupk2,
|
||||
pev, lot
|
||||
)
|
||||
SELECT
|
||||
REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3)||SUBSTRING(tmp,33,3), ' ', '0') AS pevprofessionnelle,
|
||||
'[ANNEE]',
|
||||
SUBSTRING(tmp,1,2) AS ccodep,
|
||||
SUBSTRING(tmp,3,1) AS ccodir,
|
||||
SUBSTRING(tmp,4,3) AS ccocom,
|
||||
SUBSTRING(tmp,7,10) AS invar,
|
||||
|
||||
SUBSTRING(tmp,28,3) AS dnupev,
|
||||
|
||||
CASE WHEN trim(SUBSTRING(tmp,36,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,36,9),'999999999') END AS dsupot,
|
||||
CASE WHEN trim(SUBSTRING(tmp,45,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,45,9),'999999999') END AS dsup1,
|
||||
CASE WHEN trim(SUBSTRING(tmp,54,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,54,9),'999999999') END AS dsup2,
|
||||
CASE WHEN trim(SUBSTRING(tmp,63,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,63,9),'999999999') END AS dsup3,
|
||||
CASE WHEN trim(SUBSTRING(tmp,72,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,72,9),'999999999') END AS dsupk1,
|
||||
CASE WHEN trim(SUBSTRING(tmp,81,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,81,9),'999999999') END AS dsupk2,
|
||||
|
||||
REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3),' ', '0') AS pev,
|
||||
'[LOT]' AS lot
|
||||
FROM [PREFIXE]bati WHERE SUBSTRING(tmp,31,2) ='50';
|
||||
|
||||
-- Traitement:
|
||||
INSERT INTO [PREFIXE]pevlissage
|
||||
(
|
||||
pevlissage, annee,
|
||||
ccodep, ccodir, ccocom, invar,
|
||||
dnupev,
|
||||
mlbcom, mlbsyn, mlbcu , mlbdep,
|
||||
mlbts1, mlbts2, mlbtas,
|
||||
mlbgem, mlbtom, tbfpas,
|
||||
pev, lot
|
||||
)
|
||||
SELECT DISTINCT
|
||||
REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3),' ', '0') AS pevlissage,
|
||||
'[ANNEE]',
|
||||
SUBSTRING(tmp,1,2) AS ccodep,
|
||||
SUBSTRING(tmp,3,1) AS ccodir,
|
||||
SUBSTRING(tmp,4,3) AS ccocom,
|
||||
SUBSTRING(tmp,7,10) AS invar,
|
||||
|
||||
SUBSTRING(tmp,28,3) AS dnupev,
|
||||
|
||||
|
||||
CASE WHEN trim(SUBSTRING(tmp,36,11))='' THEN NULL ELSE to_number(SUBSTRING(tmp,36,11),'99999999999') END AS mlbcom,
|
||||
CASE WHEN trim(SUBSTRING(tmp,48,11))='' THEN NULL ELSE to_number(SUBSTRING(tmp,48,11),'99999999999') END AS mlbsyn,
|
||||
CASE WHEN trim(SUBSTRING(tmp,60,11))='' THEN NULL ELSE to_number(SUBSTRING(tmp,60,11),'99999999999') END AS mlbcu,
|
||||
CASE WHEN trim(SUBSTRING(tmp,72,11))='' THEN NULL ELSE to_number(SUBSTRING(tmp,72,11),'99999999999') END AS mlbdep,
|
||||
CASE WHEN trim(SUBSTRING(tmp,84,11))='' THEN NULL ELSE to_number(SUBSTRING(tmp,84,11),'99999999999') END AS mlbts1,
|
||||
CASE WHEN trim(SUBSTRING(tmp,96,11))='' THEN NULL ELSE to_number(SUBSTRING(tmp,96,11),'99999999999') END AS mlbts2,
|
||||
CASE WHEN trim(SUBSTRING(tmp,108,11))='' THEN NULL ELSE to_number(SUBSTRING(tmp,108,11),'99999999999') END AS mlbtas,
|
||||
CASE WHEN trim(SUBSTRING(tmp,120,11))='' THEN NULL ELSE to_number(SUBSTRING(tmp,120,11),'99999999999') END AS mlbgem,
|
||||
CASE WHEN trim(SUBSTRING(tmp,132,11))='' THEN NULL ELSE to_number(SUBSTRING(tmp,132,11),'99999999999') END AS mlbtom,
|
||||
CASE WHEN trim(SUBSTRING(tmp,144,11))='' THEN NULL ELSE to_number(SUBSTRING(tmp,144,11),'99999999999') END AS tbfpas,
|
||||
|
||||
REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3),' ', '0') AS pev,
|
||||
'[LOT]' AS lot
|
||||
|
||||
FROM [PREFIXE]bati WHERE SUBSTRING(tmp,31,2) ='52';
|
||||
|
||||
-- Traitement: pevdependances
|
||||
INSERT INTO [PREFIXE]pevdependances
|
||||
(
|
||||
pevdependances, annee, ccodep, ccodir, ccocom, invar, dnupev, dnudes, dsudep, cconad, asitet, dmatgm, dmatto, detent, geaulc, gelelc, gchclc, dnbbai, dnbdou,
|
||||
dnblav, dnbwc, deqtlc, dcimlc, dcetde, dcspde, dcspdea,
|
||||
pev, lot
|
||||
)
|
||||
select
|
||||
REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3)||SUBSTRING(tmp,33,3), ' ', '0') AS pevdependances,
|
||||
'[ANNEE]' AS annee,
|
||||
SUBSTRING(tmp,1,2) AS ccodep,
|
||||
SUBSTRING(tmp,3,1) AS ccodir,
|
||||
SUBSTRING(tmp,4,3) AS ccocom,
|
||||
SUBSTRING(tmp,7,10) AS invar,
|
||||
|
||||
SUBSTRING(tmp,28,3) AS dnupev,
|
||||
|
||||
SUBSTRING(tmp,33,3) AS dnudes,
|
||||
CASE WHEN trim(SUBSTRING(tmp,36,6))='' THEN NULL ELSE to_number(SUBSTRING(tmp,36,6),'999999') END AS dsudep,
|
||||
CASE WHEN trim(SUBSTRING(tmp,42,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,42,2)) END AS cconad,
|
||||
SUBSTRING(tmp,44,6) AS asitet,
|
||||
|
||||
SUBSTRING(tmp,50,2) AS dmatgm,
|
||||
SUBSTRING(tmp,52,2) AS dmatto,
|
||||
SUBSTRING(tmp,54,1) AS detent,
|
||||
SUBSTRING(tmp,55,1) AS geaulc,
|
||||
SUBSTRING(tmp,56,1) AS gelelc,
|
||||
SUBSTRING(tmp,57,1) AS gchclc,
|
||||
SUBSTRING(tmp,58,2) AS dnbbai,
|
||||
SUBSTRING(tmp,60,2) AS dnbdou,
|
||||
SUBSTRING(tmp,62,2) AS dnblav,
|
||||
SUBSTRING(tmp,64,2) AS dnbwc,
|
||||
CASE WHEN trim(SUBSTRING(tmp,66,3))='' THEN NULL ELSE to_number(SUBSTRING(tmp,66,3),'999') END AS deqtlc,
|
||||
CASE WHEN trim(SUBSTRING(tmp,69,2))='' THEN NULL ELSE to_number(SUBSTRING(tmp,69,2),'99')/10 END AS dcimlc,
|
||||
CASE WHEN trim(SUBSTRING(tmp,71,3))='' THEN NULL ELSE to_number(SUBSTRING(tmp,71,3),'999')/100 END AS dcetde,
|
||||
|
||||
SUBSTRING(tmp,74,3) AS dcspde,
|
||||
|
||||
SUBSTRING(tmp,77,6) AS dcspdea,
|
||||
|
||||
REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,7,10)||SUBSTRING(tmp,28,3),' ', '0') AS pev,
|
||||
'[LOT]' as lot
|
||||
FROM [PREFIXE]bati WHERE SUBSTRING(tmp,31,2) ='60';
|
||||
|
||||
|
||||
-- Traitement: commune_majic
|
||||
INSERT INTO [PREFIXE]commune_majic
|
||||
(
|
||||
commune, annee, ccodep, ccodir, ccocom, libcom, lot
|
||||
)
|
||||
SELECT
|
||||
REPLACE(SUBSTRING(tmp,1,6),' ', '0') AS commune,
|
||||
'[ANNEE]',
|
||||
SUBSTRING(tmp,1,2) AS ccodep,
|
||||
SUBSTRING(tmp,3,1) AS ccodir,
|
||||
SUBSTRING(tmp,4,3) AS ccocom,
|
||||
SUBSTRING(tmp,17,30) AS libcom,
|
||||
'[LOT]' as lot
|
||||
FROM [PREFIXE]bati WHERE trim(SUBSTRING(tmp,31,2))='' AND trim(SUBSTRING(tmp,4,3)) != '';
|
||||
|
||||
|
||||
-- Traitement: proprietaire
|
||||
INSERT INTO [PREFIXE]proprietaire
|
||||
(
|
||||
proprietaire, annee, ccodep, ccodir, ccocom, dnupro, dnulp, ccocif, dnuper, ccodro, ccodem, gdesip, gtoper, ccoqua, dnatpr, ccogrm, dsglpm, dforme,
|
||||
ddenom, gtyp3, gtyp4, gtyp5, gtyp6, dlign3, dlign4, dlign5, dlign6, ccopay, ccodep1a2, ccodira, ccocom_adr, ccovoi, ccoriv, dnvoiri, dindic,
|
||||
ccopos,
|
||||
dqualp, dnomlp, dprnlp, jdatnss, dldnss, epxnee, dnomcp, dprncp,
|
||||
dsiren,
|
||||
topja, datja,
|
||||
dformjur, dnomus, dprnus,
|
||||
comptecommunal, lot
|
||||
)
|
||||
SELECT DISTINCT ON (ccodep,ccocom,dnupro,dnulp,dnuper)
|
||||
REPLACE(SUBSTRING(tmp,1,2)||SUBSTRING(tmp,7,6)||SUBSTRING(tmp,13,2)||SUBSTRING(tmp,19,6), ' ', '0') AS proprietaire,
|
||||
'[ANNEE]' AS annee,
|
||||
SUBSTRING(tmp,1,2) AS ccodep,
|
||||
SUBSTRING(tmp,3,1) AS ccodir,
|
||||
SUBSTRING(tmp,4,3) AS ccocom,
|
||||
SUBSTRING(tmp,7,6) AS dnupro,
|
||||
SUBSTRING(tmp,13,2) AS dnulp,
|
||||
SUBSTRING(tmp,15,4) AS ccocif,
|
||||
SUBSTRING(tmp,19,6) AS dnuper,
|
||||
CASE WHEN trim(SUBSTRING(tmp,25,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,25,1)) END AS ccodro,
|
||||
CASE WHEN trim(SUBSTRING(tmp,26,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,26,1)) END AS ccodem,
|
||||
SUBSTRING(tmp,27,1) AS gdesip,
|
||||
CASE WHEN trim(SUBSTRING(tmp,28,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,28,1)) END AS gtoper,
|
||||
CASE WHEN trim(SUBSTRING(tmp,29,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,29,1)) END AS ccoqua,
|
||||
CASE WHEN trim(SUBSTRING(tmp,35,3))='' THEN NULL ELSE trim(SUBSTRING(tmp,35,3)) END AS dnatpr,
|
||||
CASE WHEN trim(SUBSTRING(tmp,38,2))='' THEN NULL ELSE trim(SUBSTRING(tmp,38,2)) END AS ccogrm,
|
||||
SUBSTRING(tmp,40,10) AS dsglpm,
|
||||
SUBSTRING(tmp,50,4) AS dforme,
|
||||
SUBSTRING(tmp,57,60) AS ddenom,
|
||||
CASE WHEN trim(SUBSTRING(tmp,117,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,117,1)) END AS gtyp3,
|
||||
CASE WHEN trim(SUBSTRING(tmp,118,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,118,1)) END AS gtyp4,
|
||||
CASE WHEN trim(SUBSTRING(tmp,119,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,119,1)) END AS gtyp5,
|
||||
CASE WHEN trim(SUBSTRING(tmp,120,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,120,1)) END AS gtyp6,
|
||||
SUBSTRING(tmp,121,30) AS dlign3,
|
||||
SUBSTRING(tmp,151,36) AS dlign4,
|
||||
SUBSTRING(tmp,187,30) AS dlign5,
|
||||
SUBSTRING(tmp,217,32) AS dlign6,
|
||||
SUBSTRING(tmp,249,3) AS ccopay,
|
||||
SUBSTRING(tmp,252,2) AS ccodep1a2,
|
||||
SUBSTRING(tmp,254,1) AS ccodira,
|
||||
SUBSTRING(tmp,255,3) AS ccocom_adr,
|
||||
SUBSTRING(tmp,258,5) AS ccovoi,
|
||||
SUBSTRING(tmp,263,4) AS ccoriv,
|
||||
SUBSTRING(tmp,267,4) AS dnvoiri,
|
||||
SUBSTRING(tmp,271,1) AS dindic,
|
||||
SUBSTRING(tmp,272,5) AS ccopos,
|
||||
|
||||
SUBSTRING(tmp,287,3) AS dqualp,
|
||||
SUBSTRING(tmp,290,30) AS dnomlp,
|
||||
SUBSTRING(tmp,320,15) AS dprnlp,
|
||||
CASE WHEN trim(SUBSTRING(tmp,335,10))='' THEN NULL WHEN SUBSTRING(tmp,335,10)='00/00/0000' THEN NULL ELSE SUBSTRING(tmp,335,10) END AS jdatnss,
|
||||
SUBSTRING(tmp,345,58) AS dldnss,
|
||||
NULL AS epxnee,
|
||||
NULL AS dnomcp,
|
||||
NULL AS dprncp,
|
||||
SUBSTRING(tmp,467,9) AS dsiren,
|
||||
|
||||
SUBSTRING(tmp,478,1) AS topja,
|
||||
CASE WHEN trim(SUBSTRING(tmp,479,8))='' THEN NULL ELSE SUBSTRING(tmp,479,8) END AS datja,
|
||||
|
||||
SUBSTRING(tmp,534,4) AS dformjur,
|
||||
SUBSTRING(tmp,538,60) AS dnomus,
|
||||
SUBSTRING(tmp,598,40) AS dprnus,
|
||||
|
||||
|
||||
REPLACE(SUBSTRING(tmp,1,2)||SUBSTRING(tmp,3,4)||SUBSTRING(tmp,7,6),' ', '0') AS comptecommunal,
|
||||
'[LOT]' as lot
|
||||
FROM [PREFIXE]prop
|
||||
WHERE trim(SUBSTRING(tmp,7,6)) != ''
|
||||
ORDER BY ccodep,ccocom,dnupro,dnulp,dnuper;
|
||||
|
||||
-- création: comptecommunal à partir de proprietaire
|
||||
CREATE INDEX idxan_proprietaire ON proprietaire (annee);
|
||||
INSERT INTO [PREFIXE]comptecommunal
|
||||
(comptecommunal, annee, ccodep, ccodir, ccocom, dnupro, ajoutcoherence, lot)
|
||||
SELECT
|
||||
REPLACE(ccodep||ccodir||ccocom||dnupro,' ', '0') AS comptecommunal,
|
||||
'[ANNEE]',
|
||||
ccodep,
|
||||
ccodir,
|
||||
ccocom,
|
||||
dnupro,
|
||||
'N',
|
||||
'[LOT]' as lot
|
||||
FROM [PREFIXE]proprietaire
|
||||
WHERE annee='[ANNEE]' AND lot='[LOT]'
|
||||
GROUP BY ccodep, ccodir, ccocom, dnupro;
|
||||
|
||||
-- Traitement: pdl
|
||||
INSERT INTO [PREFIXE]pdl
|
||||
(
|
||||
pdl, annee, ccodep, ccodir, ccocom, ccopre, ccosec, dnupla, dnupdl, dnivim, ctpdl, dmrpdl, gprmut, dnupro, ccocif,
|
||||
parcelle, comptecommunal, lot
|
||||
)
|
||||
SELECT
|
||||
REPLACE(SUBSTRING(tmp,1,18),' ', '0') AS pdl,
|
||||
'[ANNEE]',
|
||||
SUBSTRING(tmp,1,2) AS ccodep,
|
||||
SUBSTRING(tmp,3,1) AS ccodir,
|
||||
SUBSTRING(tmp,4,3) AS ccocom,
|
||||
SUBSTRING(tmp,7,3) AS ccopre,
|
||||
SUBSTRING(tmp,10,2) AS ccosec,
|
||||
SUBSTRING(tmp,12,4) AS dnupla,
|
||||
SUBSTRING(tmp,16,3) AS dnupdl,
|
||||
SUBSTRING(tmp,28,1) AS dnivim,
|
||||
CASE WHEN trim(SUBSTRING(tmp,29,3))='' THEN NULL ELSE trim(SUBSTRING(tmp,29,3)) END AS ctpdl,
|
||||
SUBSTRING(tmp,62,20) AS dmrpdl,
|
||||
SUBSTRING(tmp,82,1) AS gprmut,
|
||||
SUBSTRING(tmp,83,6) AS dnupro,
|
||||
SUBSTRING(tmp,94,4) AS ccocif,
|
||||
REPLACE(SUBSTRING(tmp,1,15),' ', '0') AS parcelle,
|
||||
REPLACE(SUBSTRING(tmp,1,2)||SUBSTRING(tmp,3,4)||SUBSTRING(tmp,83,6),' ', '0') AS comptecommunal,
|
||||
'[LOT]' as lot
|
||||
FROM [PREFIXE]pdll WHERE SUBSTRING(tmp,26,2) ='10';
|
||||
|
||||
-- Traitement: parcellecomposante
|
||||
INSERT INTO [PREFIXE]parcellecomposante
|
||||
(
|
||||
parcellecomposante, annee, ccodep, ccodir, ccocom, ccopre, ccosec, dnupla, dnupdl, ccoprea, ccoseca, dnuplaa, ccocif,
|
||||
pdl, parcelle,parcellea, lot
|
||||
)
|
||||
SELECT
|
||||
REPLACE(SUBSTRING(tmp,1,18)||SUBSTRING(tmp,28,9),' ', '0') AS parcellecomposante,
|
||||
'[ANNEE]',
|
||||
SUBSTRING(tmp,1,2) AS ccodep,
|
||||
SUBSTRING(tmp,3,1) AS ccodir,
|
||||
SUBSTRING(tmp,4,3) AS ccocom,
|
||||
SUBSTRING(tmp,7,3) AS ccopre,
|
||||
SUBSTRING(tmp,10,2) AS ccosec,
|
||||
SUBSTRING(tmp,12,4) AS dnupla,
|
||||
SUBSTRING(tmp,16,3) AS dnupdl,
|
||||
SUBSTRING(tmp,28,3) AS ccoprea,
|
||||
SUBSTRING(tmp,31,2) AS ccoseca,
|
||||
SUBSTRING(tmp,33,4) AS dnuplaa,
|
||||
SUBSTRING(tmp,94,4) AS ccocif,
|
||||
REPLACE(SUBSTRING(tmp,1,18),' ', '0') AS pdl,
|
||||
REPLACE(SUBSTRING(tmp,1,15),' ', '0') AS parcelle,
|
||||
CASE WHEN trim(SUBSTRING(tmp,33,4)) ='' THEN null ELSE REPLACE(SUBSTRING(tmp,1,6)||SUBSTRING(tmp,28,9),' ', '0') END parcellea,
|
||||
'[LOT]' as lot
|
||||
FROM [PREFIXE]pdll WHERE SUBSTRING(tmp,26,2) ='20';
|
||||
|
||||
-- Traitement: lots
|
||||
INSERT INTO [PREFIXE]lots
|
||||
(
|
||||
lots, annee, ccodep, ccodir, ccocom, ccopre, ccosec, dnupla, dnupdl, dnulot, cconlo, dcntlo, dnumql, ddenql, dfilot, datact, dnuprol, dreflf, ccocif,
|
||||
pdl, comptecommunal, parcelle, lot
|
||||
)
|
||||
SELECT
|
||||
REPLACE(SUBSTRING(tmp,1,25),' ', '0') AS lots,
|
||||
'[ANNEE]',
|
||||
SUBSTRING(tmp,1,2) AS ccodep,
|
||||
SUBSTRING(tmp,3,1) AS ccodir,
|
||||
SUBSTRING(tmp,4,3) AS ccocom,
|
||||
SUBSTRING(tmp,7,3) AS ccopre,
|
||||
SUBSTRING(tmp,10,2) AS ccosec,
|
||||
SUBSTRING(tmp,12,4) AS dnupla,
|
||||
SUBSTRING(tmp,16,3) AS dnupdl,
|
||||
SUBSTRING(tmp,19,7) AS dnulot,
|
||||
CASE WHEN trim(SUBSTRING(tmp,28,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,28,1)) END AS cconlo,
|
||||
CASE WHEN trim(SUBSTRING(tmp,29,9))='' THEN NULL ELSE to_number(SUBSTRING(tmp,29,9),'999999999') END AS dcntlo,
|
||||
CASE WHEN trim(SUBSTRING(tmp,38,7))='' THEN NULL ELSE to_number(SUBSTRING(tmp,38,7),'9999999') END AS dnumql,
|
||||
CASE WHEN trim(SUBSTRING(tmp,45,7))='' THEN NULL ELSE to_number(SUBSTRING(tmp,45,7),'999999') END AS ddenql,
|
||||
SUBSTRING(tmp,52,20) AS dfilot,
|
||||
CASE WHEN trim(SUBSTRING(tmp,72,8))='' THEN NULL ELSE SUBSTRING(tmp,72,8) END AS datact,
|
||||
SUBSTRING(tmp,83,6) AS dnuprol,
|
||||
SUBSTRING(tmp,89,5) AS dreflf,
|
||||
SUBSTRING(tmp,94,4) AS ccocif,
|
||||
REPLACE(SUBSTRING(tmp,1,18),' ', '0') AS pdl,
|
||||
REPLACE(SUBSTRING(tmp,1,2)||SUBSTRING(tmp,3,4)||SUBSTRING(tmp,83,6),' ', '0') AS comptecommunal,
|
||||
REPLACE(SUBSTRING(tmp,1,15),' ', '0') AS parcelle,
|
||||
'[LOT]' as lot
|
||||
FROM [PREFIXE]pdll WHERE SUBSTRING(tmp,26,2) ='30';
|
||||
|
||||
-- Traitement: lotslocaux
|
||||
INSERT INTO [PREFIXE]lotslocaux
|
||||
(
|
||||
lotslocaux, annee, ccodepl, ccodirl, ccocoml, ccoprel, ccosecl, dnuplal, dnupdl, dnulot, ccodebpb, ccodird, ccocomb, ccopreb, invloc, dnumql, ddenql,
|
||||
lots, local00, local10, lot
|
||||
)
|
||||
SELECT DISTINCT
|
||||
REPLACE(SUBSTRING(tmp,1,25)||SUBSTRING(tmp,37,10),' ', '0') AS lotslocaux,
|
||||
'[ANNEE]',
|
||||
SUBSTRING(tmp,1,2) AS ccodepl,
|
||||
SUBSTRING(tmp,3,1) AS ccodirl,
|
||||
SUBSTRING(tmp,4,3) AS ccocoml,
|
||||
SUBSTRING(tmp,7,3) AS ccoprel,
|
||||
SUBSTRING(tmp,10,2) AS ccosecl,
|
||||
SUBSTRING(tmp,12,4) AS dnuplal,
|
||||
SUBSTRING(tmp,16,3) AS dnupdl,
|
||||
SUBSTRING(tmp,19,7) AS dnulot,
|
||||
SUBSTRING(tmp,28,2) AS ccodebpb,
|
||||
SUBSTRING(tmp,30,1) AS ccodird,
|
||||
SUBSTRING(tmp,31,3) AS ccocomb,
|
||||
SUBSTRING(tmp,34,3) AS ccopreb,
|
||||
SUBSTRING(tmp,37,10) AS invloc,
|
||||
SUBSTRING(tmp,47,7) AS dnumql,
|
||||
SUBSTRING(tmp,54,7) AS ddenql,
|
||||
REPLACE(SUBSTRING(tmp,1,25),' ', '0') AS lots,
|
||||
REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,37,10),' ', '0') AS local00,
|
||||
REPLACE(SUBSTRING(tmp,1,3)||SUBSTRING(tmp,37,10),' ', '0') AS local10,
|
||||
'[LOT]' as lot
|
||||
FROM [PREFIXE]lloc;
|
||||
|
||||
-- Traitement: commune
|
||||
INSERT INTO [PREFIXE]commune
|
||||
(
|
||||
commune, geo_commune, annee, ccodep, ccodir, ccocom, clerivili, libcom, typcom, ruract, carvoi, indpop, poprel, poppart, popfict, annul, dteannul, dtecreart, codvoi,
|
||||
typvoi, indldnbat, motclas, lot
|
||||
)
|
||||
SELECT
|
||||
REPLACE(SUBSTRING(tmp,1,6),' ', '0') AS commune,
|
||||
REPLACE(SUBSTRING(tmp,1,6),' ', '0') AS geo_commune,
|
||||
'[ANNEE]',
|
||||
SUBSTRING(tmp,1,2) AS ccodep,
|
||||
SUBSTRING(tmp,3,1) AS ccodir,
|
||||
SUBSTRING(tmp,4,3) AS ccocom,
|
||||
SUBSTRING(tmp,11,1) AS clerivili,
|
||||
SUBSTRING(tmp,12,30) AS libcom,
|
||||
CASE WHEN trim(SUBSTRING(tmp,43,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,43,1)) END AS typcom,
|
||||
SUBSTRING(tmp,46,1) AS ruract,
|
||||
SUBSTRING(tmp,49,1) AS carvoi,
|
||||
SUBSTRING(tmp,50,1) AS indpop,
|
||||
CASE WHEN trim(SUBSTRING(tmp,53,7))='' THEN NULL ELSE to_number(trim(SUBSTRING(tmp,53,7)),'0000000') END AS poprel,
|
||||
to_number(SUBSTRING(tmp,60,7),'9999999') AS poppart,
|
||||
to_number(SUBSTRING(tmp,67,7),'0000000') AS popfict,
|
||||
SUBSTRING(tmp,74,1) AS annul,
|
||||
SUBSTRING(tmp,75,7) AS dteannul,
|
||||
SUBSTRING(tmp,82,7) AS dtecreart,
|
||||
SUBSTRING(tmp,104,5) AS codvoi,
|
||||
SUBSTRING(tmp,109,1) AS typvoi,
|
||||
SUBSTRING(tmp,110,1) AS indldnbat,
|
||||
SUBSTRING(tmp,113,8) AS motclas,
|
||||
'[LOT]' as lot
|
||||
FROM [PREFIXE]fanr WHERE SUBSTRING(tmp,4,3) != ' ' AND trim(SUBSTRING(tmp,7,4))='';
|
||||
|
||||
-- Traitement: voie
|
||||
INSERT INTO [PREFIXE]voie
|
||||
(
|
||||
voie, annee, ccodep, ccodir, ccocom, natvoiriv, ccoriv, clerivili, natvoi, libvoi, typcom, ruract, carvoi, indpop, poprel, poppart, popfict, annul, dteannul,
|
||||
dtecreart, codvoi, typvoi, indldnbat, motclas,
|
||||
commune, lot
|
||||
)
|
||||
SELECT
|
||||
REPLACE(SUBSTRING(tmp,1,6)||SUBSTRING(tmp,104,5)||SUBSTRING(tmp,7,4),' ', '0') AS voie,
|
||||
'[ANNEE]',
|
||||
SUBSTRING(tmp,1,2) AS ccodep,
|
||||
SUBSTRING(tmp,3,1) AS ccodir,
|
||||
SUBSTRING(tmp,4,3) AS ccocom,
|
||||
CASE WHEN trim(SUBSTRING(tmp,7,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,7,1)) END AS natvoiriv,
|
||||
SUBSTRING(tmp,7,4) AS ccoriv,
|
||||
SUBSTRING(tmp,11,1) AS clerivili,
|
||||
TRIM(SUBSTRING(tmp,12,4)) AS natvoi,
|
||||
SUBSTRING(tmp,16,26) AS libvoi,
|
||||
CASE WHEN trim(SUBSTRING(tmp,43,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,43,1)) END AS typcom,
|
||||
SUBSTRING(tmp,46,1) AS ruract,
|
||||
CASE WHEN trim(SUBSTRING(tmp,49,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,49,1)) END AS carvoi,
|
||||
SUBSTRING(tmp,50,1) AS indpop,
|
||||
SUBSTRING(tmp,53,7) AS poprel,
|
||||
to_number(SUBSTRING(tmp,60,7),'0000000') AS poppart,
|
||||
to_number(SUBSTRING(tmp,67,7),'0000000') AS popfict,
|
||||
CASE WHEN trim(SUBSTRING(tmp,74,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,74,1)) END AS annul,
|
||||
SUBSTRING(tmp,75,7) AS dteannul,
|
||||
SUBSTRING(tmp,82,7) AS dtecreart,
|
||||
SUBSTRING(tmp,104,5) AS codvoi,
|
||||
CASE WHEN trim(SUBSTRING(tmp,109,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,109,1)) END AS typvoi,
|
||||
CASE WHEN trim(SUBSTRING(tmp,110,1))='' THEN NULL ELSE trim(SUBSTRING(tmp,110,1)) END AS indldnbat,
|
||||
SUBSTRING(tmp,113,8) AS motclas,
|
||||
REPLACE(SUBSTRING(tmp,1,6),' ', '0') AS commune,
|
||||
'[LOT]' as lot
|
||||
FROM [PREFIXE]fanr WHERE trim(SUBSTRING(tmp,4,3)) != '' AND trim(SUBSTRING(tmp,7,4)) != '';
|
||||
|
||||
-- purge des doublons : voie
|
||||
CREATE INDEX idxan_voie ON voie (annee);
|
||||
|
||||
-- INDEXES
|
||||
CREATE INDEX idxan_suf ON suf (annee);
|
||||
CREATE INDEX idxan_sufexoneration ON sufexoneration (annee);
|
||||
CREATE INDEX idxan_suftaxation ON suftaxation (annee);
|
||||
CREATE INDEX idxan_pev ON pev (annee);
|
||||
CREATE INDEX idxan_pevexoneration ON pevexoneration (annee);
|
||||
CREATE INDEX idxan_pevtaxation ON pevtaxation (annee);
|
||||
CREATE INDEX idxan_pevprincipale ON pevprincipale (annee);
|
||||
CREATE INDEX idxan_pevprofessionnelle ON pevprofessionnelle (annee);
|
||||
CREATE INDEX idxan_pevdependances ON pevdependances (annee);
|
||||
CREATE INDEX idxan_pdl ON pdl (annee);
|
||||
CREATE INDEX idxan_parcellecomposante ON parcellecomposante (annee);
|
||||
CREATE INDEX idx_lots_tmp1 ON lots (annee, ccodep, ccodir, ccocom, dnuprol);
|
||||
CREATE INDEX idxan_lotslocaux ON lotslocaux (annee);
|
||||
CREATE INDEX idxan_commune ON commune (annee);
|
||||
CREATE INDEX proprietaire_dnupro_idx ON proprietaire (dnupro);
|
||||
CREATE INDEX proprietaire_ddenom_idx ON proprietaire (ddenom);
|
||||
CREATE INDEX parcelle_dnupro_idx ON parcelle (dnupro);
|
||||
CREATE INDEX suf_parcelle_idx ON suf (parcelle);
|
||||
CREATE INDEX sufexoneration_suf_idx ON sufexoneration (suf);
|
||||
CREATE INDEX idx_proprietaire_ccocom ON proprietaire (ccocom);
|
||||
CREATE INDEX idx_commune_ccocom ON commune (ccocom);
|
||||
CREATE INDEX idx_proprietaire_ccodro ON proprietaire (ccodro);
|
||||
CREATE INDEX idx_proprietaire_comptecommunal ON proprietaire (comptecommunal);
|
||||
CREATE INDEX idx_local00_parcelle ON local00 (parcelle);
|
||||
CREATE INDEX idx_local00_voie ON local00 (voie);
|
||||
CREATE INDEX idx_local10_local00 ON local10 (local00);
|
||||
CREATE INDEX idx_local10_comptecommunal ON local10 (comptecommunal);
|
||||
CREATE INDEX idx_pevexoneration_pev ON pevexoneration (pev);
|
||||
CREATE INDEX idx_pevtaxation_pev ON pevtaxation (pev);
|
||||
CREATE INDEX idx_parcelle_voie ON parcelle (voie);
|
||||
CREATE INDEX idx_parcelle_comptecommunal ON parcelle (comptecommunal);
|
||||
|
||||
-- ANALYSES;
|
||||
ANALYZE [PREFIXE]parcelle;
|
||||
ANALYZE [PREFIXE]suf;
|
||||
ANALYZE [PREFIXE]sufexoneration;
|
||||
ANALYZE [PREFIXE]suftaxation;
|
||||
ANALYZE [PREFIXE]local00;
|
||||
ANALYZE [PREFIXE]local10;
|
||||
ANALYZE [PREFIXE]pev;
|
||||
ANALYZE [PREFIXE]pevexoneration;
|
||||
ANALYZE [PREFIXE]pevtaxation;
|
||||
ANALYZE [PREFIXE]pevprincipale;
|
||||
ANALYZE [PREFIXE]pevprofessionnelle;
|
||||
ANALYZE [PREFIXE]pevdependances;
|
||||
ANALYZE [PREFIXE]proprietaire;
|
||||
ANALYZE [PREFIXE]comptecommunal;
|
||||
ANALYZE [PREFIXE]pdl;
|
||||
ANALYZE [PREFIXE]parcellecomposante;
|
||||
ANALYZE [PREFIXE]lots;
|
||||
ANALYZE [PREFIXE]lotslocaux;
|
||||
ANALYZE [PREFIXE]commune;
|
||||
ANALYZE [PREFIXE]voie;
|
||||
COMMIT;
|
||||
-- FORMATAGE DONNEES : FIN;
|
||||
25
SQL/majic3_purge_donnees.sql
Normal file
25
SQL/majic3_purge_donnees.sql
Normal file
@@ -0,0 +1,25 @@
|
||||
-- PURGE DES DONNEES : DEBUT;
|
||||
-- Purge des tables de données;
|
||||
DELETE FROM [PREFIXE]voie WHERE lot='[LOT]';
|
||||
DELETE FROM [PREFIXE]commune WHERE lot='[LOT]';
|
||||
DELETE FROM [PREFIXE]commune_majic WHERE lot='[LOT]';
|
||||
DELETE FROM [PREFIXE]lotslocaux WHERE lot='[LOT]';
|
||||
DELETE FROM [PREFIXE]lots WHERE lot='[LOT]';
|
||||
DELETE FROM [PREFIXE]parcellecomposante WHERE lot='[LOT]';
|
||||
DELETE FROM [PREFIXE]pdl WHERE lot='[LOT]';
|
||||
DELETE FROM [PREFIXE]comptecommunal WHERE lot='[LOT]';
|
||||
DELETE FROM [PREFIXE]proprietaire WHERE lot='[LOT]';
|
||||
DELETE FROM [PREFIXE]pevdependances WHERE lot='[LOT]';
|
||||
DELETE FROM [PREFIXE]pevlissage WHERE lot='[LOT]';
|
||||
DELETE FROM [PREFIXE]pevprofessionnelle WHERE lot='[LOT]';
|
||||
DELETE FROM [PREFIXE]pevprincipale WHERE lot='[LOT]';
|
||||
DELETE FROM [PREFIXE]pevtaxation WHERE lot='[LOT]';
|
||||
DELETE FROM [PREFIXE]pevexoneration WHERE lot='[LOT]';
|
||||
DELETE FROM [PREFIXE]pev WHERE lot='[LOT]';
|
||||
DELETE FROM [PREFIXE]local10 WHERE lot='[LOT]';
|
||||
DELETE FROM [PREFIXE]local00 WHERE lot='[LOT]';
|
||||
DELETE FROM [PREFIXE]suftaxation WHERE lot='[LOT]';
|
||||
DELETE FROM [PREFIXE]sufexoneration WHERE lot='[LOT]';
|
||||
DELETE FROM [PREFIXE]suf WHERE lot='[LOT]';
|
||||
DELETE FROM [PREFIXE]parcelle WHERE lot='[LOT]';
|
||||
-- PURGE DES DONNEES : FIN;
|
||||
8
SQL/majic3_purge_donnees_brutes.sql
Normal file
8
SQL/majic3_purge_donnees_brutes.sql
Normal file
@@ -0,0 +1,8 @@
|
||||
-- PURGE DES DONNEES BRUTES: DEBUT;
|
||||
TRUNCATE [PREFIXE]bati;
|
||||
TRUNCATE [PREFIXE]fanr;
|
||||
TRUNCATE [PREFIXE]lloc;
|
||||
TRUNCATE [PREFIXE]nbat;
|
||||
TRUNCATE [PREFIXE]pdll;
|
||||
TRUNCATE [PREFIXE]prop;
|
||||
-- PURGE DES DONNEES BRUTES: FIN;
|
||||
234
SQL/majic_recuperation_locaux_par_parcelle.sql
Normal file
234
SQL/majic_recuperation_locaux_par_parcelle.sql
Normal file
@@ -0,0 +1,234 @@
|
||||
DROP TABLE IF EXISTS parcelle_info_locaux;
|
||||
CREATE TABLE parcelle_info_locaux AS
|
||||
|
||||
WITH infos AS (
|
||||
SELECT
|
||||
p.parcelle,
|
||||
-- identification
|
||||
l.dnubat AS l_batiment, l.descr AS l_numero_entree,
|
||||
l.dniv AS l_niveau_etage, l.dpor AS l_numero_local,
|
||||
(l.dnubat || l.descr || l.dniv || l.dpor) AS l_identifiant,
|
||||
|
||||
-- adresse
|
||||
ltrim(l.dnvoiri, '0') || l.dindic AS l_numero_voirie,
|
||||
CASE WHEN v.libvoi IS NOT NULL THEN v.natvoi || v.libvoi ELSE p.cconvo || p.dvoilib END AS l_adresse,
|
||||
|
||||
-- proprio et acte
|
||||
string_agg((l10.ccodep || l10.ccocom || '-' ||l10.dnupro), '|') AS l10_compte_proprietaire,
|
||||
|
||||
string_agg(
|
||||
trim((
|
||||
'<b>Numéro: </b>' || pr.dnuper ||
|
||||
'<br/><b>Nom: </b>' || trim(coalesce(pr.dqualp, '')) || ' ' || trim(coalesce(pr.ddenom, '')) ||
|
||||
'<br/><b>Adresse: </b>' || ltrim(trim(coalesce(pr.dlign4, '')), '0') || trim(coalesce(pr.dlign5, '')) || ' ' || trim(coalesce(pr.dlign6, '')) ||
|
||||
'<br/><b>Date de naissance: </b>' || Coalesce( trim(cast(pr.jdatnss AS text) ), '-') ||
|
||||
'<br/><b>Lieux de naissance: </b>' || coalesce(trim(pr.dldnss), '-') ||
|
||||
'<br/><b>Code droit: </b>' || Coalesce(ccodro_lib, '') ||
|
||||
'<br/><b>Code démembrement: </b>' || Coalesce(ccodem_lib, '')
|
||||
))
|
||||
, '|'
|
||||
) AS l10_proprietaires,
|
||||
|
||||
l10.jdatat AS l10_date_acte,
|
||||
|
||||
-- autres infos
|
||||
dteloc_lib AS l10_type_local,
|
||||
cconlc_lib AS l10_nature_local,
|
||||
ccoplc_lib AS l10_nature_construction_particuliere,
|
||||
l10.jannat AS l10_annee_construction,
|
||||
l10.dnbniv AS l10_nombre_niveaux,
|
||||
dnatlc_lib AS l10_nature_occupation,
|
||||
|
||||
-- pev : informations générales
|
||||
pev.pev,
|
||||
ccoaff_lib AS pev_affectation,
|
||||
pev.ccostb AS pev_lettre_serie,
|
||||
pev.dcapec AS pev_categorie,
|
||||
pev.dcetlc AS pev_entretien,
|
||||
pev.dvlpera AS pev_valeur_locative,
|
||||
pev.gnexpl AS pev_nature_exoneration_permanente,
|
||||
pev.dnuref AS pev_numero_local_type,
|
||||
pev.dcsplca AS pev_coefficient_situation_particuliere,
|
||||
pev.dcsglca AS pev_coefficient_situation_generale,
|
||||
|
||||
-- pev : taxation (1 seule par PEV)
|
||||
Coalesce(Cast(pt.co_vlbaia * px.pexb / 100 AS numeric(10,2)) , 0) as co_vlbaia, pt.co_bipevla as co_bipevla,
|
||||
Coalesce(Cast(pt.gp_vlbaia * px.pexb / 100 AS numeric(10,2)) , 0) as gp_vlbaia, pt.gp_bipevla as gp_bipevla,
|
||||
Coalesce(Cast(pt.de_vlbaia * px.pexb / 100 AS numeric(10,2)) , 0) as de_vlbaia, pt.de_bipevla as de_bipevla,
|
||||
Coalesce(Cast(pt.re_vlbaia * px.pexb / 100 AS numeric(10,2)) , 0) as re_vlbaia, Coalesce(pt.re_bipevla, 0) as re_bipevla
|
||||
|
||||
FROM parcelle p
|
||||
INNER JOIN local00 l ON l.parcelle = p.parcelle
|
||||
INNER JOIN local10 l10 ON l10.local00 = l.local00
|
||||
INNER JOIN pev ON pev.local10 = l10.local10
|
||||
LEFT JOIN voie v ON v.voie = l.voie
|
||||
LEFT JOIN pevtaxation pt ON pt.pev = pev.pev
|
||||
LEFT JOIN pevexoneration px ON px.pev = pev.pev
|
||||
LEFT JOIN "dteloc" ON l10.dteloc = dteloc.dteloc
|
||||
LEFT JOIN "cconlc" ON l10.cconlc = cconlc.cconlc
|
||||
LEFT JOIN "ccoplc" ON l10.ccoplc = ccoplc.ccoplc
|
||||
LEFT JOIN "dnatlc" ON l10.dnatlc = dnatlc.dnatlc
|
||||
LEFT JOIN "ccoaff" ON pev.ccoaff = ccoaff.ccoaff
|
||||
LEFT JOIN proprietaire AS pr ON pr.comptecommunal = l10.comptecommunal
|
||||
LEFT JOIN "ccodro" c2 ON pr.ccodro = c2.ccodro
|
||||
LEFT JOIN "ccodem" c3 ON pr.ccodem = c3.ccodem
|
||||
|
||||
WHERE 2>1
|
||||
--AND p.parcelle = '%s'
|
||||
|
||||
GROUP BY
|
||||
p.parcelle,
|
||||
l.dnubat, l.dniv, l.descr, l.dpor,
|
||||
l.dnvoiri, l.dindic,
|
||||
v.natvoi, v.libvoi, p.cconvo, p.dvoilib,
|
||||
l10.ccodep, l10.ccocom, l10.dnupro, l10.jdatat,
|
||||
dteloc_lib, cconlc_lib, ccoplc_lib, l10.jannat, l10.dnbniv, dnatlc_lib,
|
||||
pev.pev, ccoaff_lib, pev.ccostb, pev.dcapec, pev.dcetlc, pev.dvlpera, pev.gnexpl, pev.dnuref, pev.dcsplca, pev.dcsglca,
|
||||
pt.co_vlbaia, pt.gp_vlbaia, pt.de_vlbaia, pt.re_vlbaia, px.pexb, pt.co_bipevla, pt.gp_bipevla, pt.de_bipevla, pt.re_bipevla
|
||||
|
||||
ORDER BY l_identifiant
|
||||
|
||||
--LIMIT 1
|
||||
),
|
||||
|
||||
pevs AS (
|
||||
SELECT pp.pev,
|
||||
'Habitation' AS type_pev, 'Habitation' AS sous_type_pev,
|
||||
(
|
||||
'<b>Nombre de pièces: </b>' || pp.dnbpdc || '<br/><b>Pièces principales: </b>' || pp.dnbppr ||
|
||||
'<br/><b>Surface des pièces: </b>' || pp.dsupdc || ' m2' || '<br/>Salles à manger: </b>' || pp.dnbsam || '<br/>Chambres: </b>' || pp.dnbcha ||
|
||||
'<br/><b>Cuisines < 9m2: </b>' || pp.dnbcu8 || '<br/>Cuisines > 9m2: </b>' || pp.dnbcu9 ||
|
||||
'<br/><b>Salles d''eau: </b>' || pp.dnbsea || '<br/>Pièces annexes: </b>' || pp.dnbann
|
||||
) AS descriptif,
|
||||
(
|
||||
'<b>Eau: </b>' || pp.geaulc || '<br/><b>Électricité: </b>' || pp.gelelc ||
|
||||
'<br/><b>Gaz: </b>' || pp.ggazlc || '<br/>Chauffage central: </b>' || pp.gchclc ||
|
||||
'<br/><b>Baignoire(s): </b>' || pp.dnbbai || '<br/>Douche(s): </b>' || pp.dnbdou ||
|
||||
'<br/><b>Lavabo(s): </b>' || pp.dnblav || '<br/>WC: </b>' || pp.dnbwc
|
||||
) AS confort
|
||||
FROM pevprincipale pp
|
||||
JOIN infos ON infos.pev = pp.pev
|
||||
UNION ALL
|
||||
SELECT pd.pev,
|
||||
'Dépendance' AS type_pev, cconad_lib AS sous_type_pev,
|
||||
(
|
||||
'<b>Situation particulière: </b>' || pd.dcspdea || '<br/><b>Surface réelle: </b>' || pd.dsudep || ' m2</b>' ||
|
||||
'<br/><b>Pondération: </b>' || pd.dcimlc || '<br/><b>État d''entretien: </b>' || pd.detent
|
||||
) AS descriptif,
|
||||
(
|
||||
'<b>Eau: </b>' || pd.geaulc || '<br/><b>Électricité: </b>' || pd.gelelc ||
|
||||
'<br/><b>Chauffage central: </b>' || pd.gchclc || '<br/>Baignoire(s): </b>' || pd.dnbbai ||
|
||||
'<br/><b>Douche(s): </b>' || pd.dnbdou || '<br/>Lavabo(s): </b>' || pd.dnblav || '<br/>WC: </b>' || pd.dnbwc
|
||||
) AS confort
|
||||
FROM pevdependances pd
|
||||
JOIN infos ON infos.pev = pd.pev
|
||||
LEFT JOIN cconad ON cconad.cconad = pd.cconad
|
||||
UNION ALL
|
||||
SELECT po.pev,
|
||||
'Professionnel' AS type, 'Local professionnel' AS sous_type_pev,
|
||||
Coalesce('<b>Surface réelle: </b>' || po.vsurzt || ' m2', '') AS descriptif,
|
||||
'' AS confort
|
||||
FROM pevprofessionnelle po
|
||||
JOIN infos ON infos.pev = po.pev
|
||||
),
|
||||
source AS (
|
||||
SELECT
|
||||
parcelle,
|
||||
l_batiment, l_numero_entree, l_niveau_etage, l_numero_local, l_identifiant, l_numero_voirie, l_adresse,
|
||||
l10_compte_proprietaire, l10_proprietaires, l10_date_acte, l10_type_local, l10_nature_local, l10_nature_construction_particuliere, l10_annee_construction, l10_nombre_niveaux,
|
||||
pev_affectation, pev_lettre_serie, pev_categorie, pev_entretien, pev_valeur_locative, pev_nature_exoneration_permanente,
|
||||
pev_numero_local_type, pev_coefficient_situation_particuliere, pev_coefficient_situation_generale,
|
||||
co_vlbaia, gp_vlbaia, de_vlbaia, re_vlbaia, co_bipevla, gp_bipevla, de_bipevla, re_bipevla,
|
||||
count(p.pev) AS nb_pev,
|
||||
string_agg(
|
||||
('<b>Type: </b>' || type_pev || '<br/><b>Sous-type: </b>' || Coalesce(sous_type_pev, '') || Coalesce('<h4>Descriptif</h4>' || descriptif, '') || Coalesce('<h4>Confort</h4></b>' || confort, '') ),
|
||||
'@')
|
||||
AS infos_pev
|
||||
FROM infos i
|
||||
JOIN pevs p ON i.pev = p.pev
|
||||
GROUP BY
|
||||
parcelle,
|
||||
l_batiment, l_numero_entree, l_niveau_etage, l_numero_local, l_identifiant, l_numero_voirie, l_adresse,
|
||||
l10_compte_proprietaire, l10_proprietaires, l10_date_acte, l10_type_local, l10_nature_local, l10_nature_construction_particuliere, l10_annee_construction, l10_nombre_niveaux,
|
||||
pev_affectation, pev_lettre_serie, pev_categorie, pev_entretien, pev_valeur_locative, pev_nature_exoneration_permanente,
|
||||
pev_numero_local_type, pev_coefficient_situation_particuliere, pev_coefficient_situation_generale,
|
||||
co_vlbaia, gp_vlbaia, de_vlbaia, re_vlbaia, co_bipevla, gp_bipevla, de_bipevla, re_bipevla
|
||||
ORDER BY l_identifiant
|
||||
)
|
||||
|
||||
SELECT
|
||||
parcelle,
|
||||
count(l_identifiant) AS nb_locaux,
|
||||
string_agg(
|
||||
(
|
||||
'<h2>Local ' || l_identifiant || '</h2>' ||
|
||||
'<h3>Description générale</h3>' ||
|
||||
|
||||
'<h4>Identification</h4>' ||
|
||||
'<p>' ||
|
||||
'<b>Bat: </b>' || l_batiment ||
|
||||
'<br/><b>Entrée: </b>' || l_numero_entree ||
|
||||
'<br/><b>Etage: </b>' || l_niveau_etage ||
|
||||
'<br/><b>Local: </b>' || l_numero_local ||
|
||||
'<br/><b>Identifiant: </b>' || l_identifiant ||
|
||||
'<br/><b>Adresse: </b>' || l_adresse ||
|
||||
'</p>' ||
|
||||
|
||||
'<h4>Propriété</h4>' ||
|
||||
'<p>' ||
|
||||
'<b>Compte propriétaire: </b>' || l10_compte_proprietaire ||
|
||||
'<br/><b>Date de l''acte: </b>' || l10_date_acte ||
|
||||
'</p>' ||
|
||||
|
||||
'<h4>Caractéristiques</h4>' ||
|
||||
'<p>' ||
|
||||
'<b>Type: </b>' || l10_type_local ||
|
||||
'<br/><b>Nature: </b>' || l10_nature_local ||
|
||||
'<br/><b>Construction: </b>' || l10_nature_construction_particuliere ||
|
||||
'<br/><b>Année de construction: </b>' || l10_annee_construction ||
|
||||
'<br/><b>Niveaux: </b>' || l10_nombre_niveaux ||
|
||||
'</p>' ||
|
||||
|
||||
'<h3>Description foncière</h3>' ||
|
||||
|
||||
'<h4>Évaluation</h4>' ||
|
||||
'<p>' ||
|
||||
'<b>Affectation: </b>' || pev_affectation ||
|
||||
'<br/><b>Lettre de série: </b>' || pev_lettre_serie ||
|
||||
'<br/><b>Catégorie: </b>' || pev_categorie ||
|
||||
'<br/><b>Entretien: </b>' || Coalesce(pev_entretien, -1) ||
|
||||
'<br/><b>Valeur locative: </b>' || Coalesce(pev_valeur_locative, -1) ||
|
||||
'<br/><b>Exonération permanente: </b>' || Coalesce(pev_nature_exoneration_permanente, '') ||
|
||||
'<br/><b>Numéro du local type: </b>' || Coalesce(pev_numero_local_type, '') ||
|
||||
'<br/><b>Situation générale: </b>' || Coalesce(pev_coefficient_situation_generale, '') ||
|
||||
'<br/><b>Situation particulière: </b>' || Coalesce(pev_coefficient_situation_particuliere, '') ||
|
||||
'</p>' ||
|
||||
|
||||
'<h4>Taxation</h4>' ||
|
||||
'<p>' ||
|
||||
'<b>Commune: </b>' || co_bipevla ||
|
||||
'<br/><b>Intercommunalité: </b>' || gp_bipevla ||
|
||||
'<br/><b>Département: </b>' || de_bipevla ||
|
||||
'<br/><b>Région: </b>' || re_bipevla ||
|
||||
'</p>' ||
|
||||
|
||||
'<h3>Description détaillée</h3>' ||
|
||||
'Le local contient ' || nb_pev || ' parties.'
|
||||
'<p>__________________________<br/> ' ||
|
||||
replace(infos_pev, '@', '<br/>__________________________</p><p>__________________________<br/>') ||
|
||||
'<br/>__________________________' ||
|
||||
'</p>' ||
|
||||
|
||||
'<h3>Propriétaires</h3>' ||
|
||||
'<p>' ||
|
||||
replace(l10_proprietaires, '|', '<p/><p>') ||
|
||||
'</p>'
|
||||
|
||||
)
|
||||
, '<hr>'
|
||||
) AS locaux
|
||||
FROM source
|
||||
GROUP BY parcelle
|
||||
;
|
||||
|
||||
CREATE INDEX parcelle_info_locaux_pk ON parcelle_info_locaux (parcelle);
|
||||
30
SQL/majic_recuperation_subdivisions_par_parcelle.sql
Normal file
30
SQL/majic_recuperation_subdivisions_par_parcelle.sql
Normal file
@@ -0,0 +1,30 @@
|
||||
SET search_path TO cadastre_2017,public;
|
||||
SELECT
|
||||
--suf
|
||||
s.ccosub AS s_nom,
|
||||
-- s.cgrnum AS s_groupe_nature_culture,
|
||||
cgrnum_lib AS s_groupe_nature_culture_lib,
|
||||
-- s.dsgrpf AS s_sous_groupe,
|
||||
dsgrpf_lib AS s_sous_groupe_lib,
|
||||
s.dclssf AS s_classe_dans_le_groupe,
|
||||
s.cnatsp AS s_code_nature_de_culture_speciale,
|
||||
s.drcsuba AS s_revenu_cadastral,
|
||||
|
||||
-- sufexoneration
|
||||
-- se.gnexts AS se_nature_exoneration,
|
||||
gnexts_lib AS se_nature_exoneration_lib,
|
||||
-- se.ccolloc AS se_collectivite,
|
||||
ccolloc_lib AS se_collectivite_lib,
|
||||
Cast(se.pexn / 100 AS numeric(10,2)) AS se_pourcentage_exonere,
|
||||
round(Cast(s.drcsuba * Cast(se.pexn / 100 AS numeric(10,2)) / 100 AS numeric) , 2) as se_montant_exonere
|
||||
FROM suf s
|
||||
LEFT JOIN "cgrnum" ON s.cgrnum = cgrnum.cgrnum
|
||||
LEFT JOIN "dsgrpf" ON s.dsgrpf = dsgrpf.dsgrpf
|
||||
LEFT JOIN sufexoneration se ON s.suf = se.suf
|
||||
LEFT JOIN "gnexts" ON se.gnexts = trim(gnexts.gnexts)
|
||||
LEFT JOIN "ccolloc" ON se.ccolloc = ccolloc.ccolloc
|
||||
WHERE 2>1
|
||||
AND s.parcelle = '20170202430000D0689'
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user