banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

#1 Fri 27 September 2024 12:04

p.robledo
Juste Inscrit !
Date d'inscription: 28 Sep 2009
Messages: 4

Reconstituer numéro de parcelle cadastrale dans Sitadel

Bonjour,

Je cherche à reconstituer les identifiants de parcelles au sein de la table Sitadel / logements, pour effectuer ensuite une jointure avec le parcellaire cadastral.

Ci-après la requête SQL qui fonctionne mais à la jointure je perds 40% des lignes du fichier Sitadel, donc je dois mal paramétrer la concaténation...

Si quelqu'un s'y est essayé avec succès, je suis bien preneur de la requête et des éventuelles explications qui vont avec smile

Grand merci,

Paul

--

UPDATE table_sitadel
SET
    idpar1 = CASE
        WHEN sec_cadastre1 IS NULL OR sec_cadastre1 = '' THEN ''
        ELSE CONCAT("Code de la commune du lieu des travaux", '000', sec_cadastre1,
                     CASE
                         WHEN RIGHT(num_cadastre1, 1) ~ '[A-Za-z]' THEN
                             RIGHT(LPAD(num_cadastre1, 5, '0'), 5)  -- 5 derniers caractères si termine par une lettre
                         ELSE
                             RIGHT(LPAD(num_cadastre1, 4, '0'), 4)   -- 4 derniers caractères si ne termine pas par une lettre
                     END
                    )
    END,
   
    idpar2 = CASE -- il y a jusqu'à trois parcelles concernées par une autorisation d'urbanisme dans Sitadel
        WHEN sec_cadastre2 IS NULL OR sec_cadastre2 = '' THEN ''
        ELSE CONCAT("Code de la commune du lieu des travaux", '000', sec_cadastre2,
                     CASE
                         WHEN RIGHT(num_cadastre2, 1) ~ '[A-Za-z]' THEN
                             RIGHT(LPAD(num_cadastre2, 5, '0'), 5)  -- 5 derniers caractères si termine par une lettre
                         ELSE
                             RIGHT(LPAD(num_cadastre2, 4, '0'), 4)   -- 4 derniers caractères si ne termine pas par une lettre
                     END
                    )
    END,
   
    idpar3 = CASE
        WHEN sec_cadastre3 IS NULL OR sec_cadastre3 = '' THEN ''
        ELSE CONCAT("Code de la commune du lieu des travaux", '000', sec_cadastre3,
                     CASE
                         WHEN RIGHT(num_cadastre3, 1) ~ '[A-Za-z]' THEN
                             RIGHT(LPAD(num_cadastre3, 5, '0'), 5)  -- 5 derniers caractères si termine par une lettre
                         ELSE
                             RIGHT(LPAD(num_cadastre3, 4, '0'), 4)   -- 4 derniers caractères si ne termine pas par une lettre
                     END
                    )
    END
;

Dernière modification par p.robledo (Fri 27 September 2024 12:06)

Hors ligne

 

#2 Fri 27 September 2024 13:22

AlineC
Membre du bureau
Lieu: AVIGNON
Date d'inscription: 5 Sep 2005
Messages: 2125
Site web

Re: Reconstituer numéro de parcelle cadastrale dans Sitadel

Bonjour,

-Est ce que tu peux extraire quelques exemples d'éléments issus de Sitadel ? cuex qui jointent, ceux qui jointent pas ?
-Est ce que ce n'est pas lié à des codes sections qui ne seraient pas sur 2 caractères ?
-Avec quelles données tu jointe ? (majic d'origine ?) et pareil quelques exemples d'id parcelles ?

Je ne comprend pas cette partie ?  RIGHT(LPAD(num_cadastre3, 4, '0'), 4)   -- 4 derniers caractères si ne termine pas par une lettre ?

A +

Hors ligne

 

Pied de page des forums

Powered by FluxBB