Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Printemps des cartes 2024

#1 Tue 08 February 2011 09:12

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Urbanisme/Habitat : compter le nb de logement dans une base MAJIC2/3

Aloha
Pourquoi compter le nombre de logements ? Pour faire une cartographie du parc privé, et une cartographie du parc public.
J'ai une requête qui me renvoie un nombre d'enregistrements à la parcelle cohérent avec la taille du territoire et les chiffres que je peux avoir à côté. J'ai incorporé de nombreuses informations dans la requête (date de construction, coefficient d'entretien, deux champs pour déterminer l'appartenance au parc privé ou public, vacance,...).
Cependant, lorsque je somme le nombre de lots que me renvoie cette requête, je trouve 47000 lots supplémentaires par rapport à l'étiage.
Et j'ai beau retourner la requête dans tous les sens, je ne vois pas où est nichée l'erreur.
Si quelqu'un a une idée, d'avance, merci,

Code:

SELECT COUNT (MJ2_LOCAL.INVAR) AS NB_LOT,
       MJ2_BATI.INVAR AS "N° invariant",
       MJ2_DESCPEV.DNUPEV AS "N° PEV",
       MJ2_PROPRIO.DNUPRO AS "N° de propriétaire",
       MJ2_LOCAL.JDATAT AS "Année de mutation",
       MJ2_LOCAL.JANNAT AS "Année de construction",
       MJ2_LOCAL.CCONLC AS "Nature du local",
       MJ2_DESCPEV.CCOAFF AS "Affectation",
       MJ2_DESCPEV.DCAPEC AS "Catégorie",
       MJ2_DESCPEV.DCETLC AS "Coeff d'entretien",
       MJ2_HABPRINC.DNBPPR AS "Nb piéces principales",
       MJ2_HABPRINC.DNBPDC AS "Nb piéces",
       MJ2_HABPRINC.DSUPDC AS "surface des piéces (hors dépe)",
       MJ2_BATI.DNUBAT AS batiment,
       MJ2_BATI.D_ESC AS escalier,
       MJ2_BATI.DNIV AS niveau,
       MJ2_BATI.DPOR AS porte,
       MJ2_BATI.DVOILIB AS voie,
          MJ2_BATI.CCOCOM
       || '000'
       || LPAD (LTRIM (MJ2_BATI.CCOSEC), 2, '0')
       || LPAD (MJ2_BATI.DNUPLA, 4, 0)
          AS CODE_PARC,
       MJ2_LOCAL.GPDL,
       CASE
          WHEN MJ2_PROPRIO.CCOGRM = '0 ' THEN '1'
          ELSE MJ2_PROPRIO.GTOPER
       END
          AS "type de propriétaire",
       MJ2_PROPRIO.CCOGRM AS "code personne morale",
       MJ2_LOCAL.DNATLC,
       CASE MJ2_LOCAL.DNATLC
          WHEN 'D' THEN 'Domicile principal occupé par le propriétaire'
          WHEN 'L' THEN 'Loué'
          WHEN 'P' THEN 'Occupé par le propriétaire'
          WHEN 'V' THEN 'Vacant'
          ELSE DNATLC
       END
          AS OCCUPATION_MJ3
  FROM    (   (   (   PLATINI.MJ2_LOCAL MJ2_LOCAL
                   INNER JOIN
                      PLATINI.MJ2_BATI MJ2_BATI
                   ON (MJ2_LOCAL.INVAR = MJ2_BATI.INVAR))
               INNER JOIN
                  PLATINI.MJ2_PROPRIO MJ2_PROPRIO
               ON (MJ2_PROPRIO.CCOCOM = MJ2_BATI.CCOCOM)
                  AND (MJ2_LOCAL.DNUPRO = MJ2_PROPRIO.DNUPRO))
           INNER JOIN
              PLATINI.MJ2_DESCPEV MJ2_DESCPEV
           ON (MJ2_DESCPEV.INVAR = MJ2_BATI.INVAR))
       INNER JOIN
          PLATINI.MJ2_HABPRINC MJ2_HABPRINC
       ON (MJ2_DESCPEV.INVAR = MJ2_HABPRINC.INVAR)
          AND (MJ2_DESCPEV.DNUPEV = MJ2_HABPRINC.DNUPEV)
 WHERE (MJ2_DESCPEV.DNUPEV = '001' AND MJ2_DESCPEV.CCOAFF = 'H')
GROUP BY MJ2_BATI.INVAR,
         MJ2_DESCPEV.DNUPEV,
         MJ2_PROPRIO.DNUPRO,
         MJ2_LOCAL.JDATAT,
         MJ2_LOCAL.JANNAT,
         MJ2_LOCAL.CCONLC,
         MJ2_DESCPEV.CCOAFF,
         MJ2_DESCPEV.DCAPEC,
         MJ2_DESCPEV.DCETLC,
         MJ2_HABPRINC.DNBPPR,
         MJ2_HABPRINC.DNBPDC,
         MJ2_HABPRINC.DSUPDC,
         MJ2_BATI.DNUBAT,
         MJ2_BATI.D_ESC,
         MJ2_BATI.DNIV,
         MJ2_BATI.DPOR,
         MJ2_BATI.DVOILIB,
            MJ2_BATI.CCOCOM
         || '000'
         || LPAD (LTRIM (MJ2_BATI.CCOSEC), 2, '0')
         || LPAD (MJ2_BATI.DNUPLA, 4, 0),
         MJ2_LOCAL.GPDL,
         MJ2_DESCPEV.CCOAFF,
         CASE
            WHEN MJ2_PROPRIO.CCOGRM = '0 ' THEN '1'
            ELSE MJ2_PROPRIO.GTOPER
         END,
         MJ2_PROPRIO.CCOGRM,
         MJ2_LOCAL.DNATLC

Dernière modification par Pierre (Tue 08 February 2011 13:35)


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

#2 Tue 08 February 2011 09:58

Jean-Michel
Membre
Lieu: An Oriant /Lorient
Date d'inscription: 3 Oct 2005
Messages: 3909

Re: Urbanisme/Habitat : compter le nb de logement dans une base MAJIC2/3

Bonjour Pierre,
Cas simple : un immeuble (en copropriété) peut être composé de :
- n appartements,
- nn caves, greniers...
- nnn garages ou emplacements de parkings,
- nnnn jardins privatifs,
- des parties communes...
La copropriété correspondante est constituée de
- n lots qui décriront chaque appartement
- nn lots qui décriront chaque cave,
- nnn lots qui.... etc
Tout cela est présent dans MAJIC III, sauf que :
Pour décrire (et imposer) un appartement, on aura dans la même déclaration (ligne descriptive dans la BD) une partie décrivant l'appartement, la cave, le garage...
(Dans l'acte de propriété, "M Untel est propriétaire des lots 5 (un appartement...), 25 (une cave...), 47 (un grenier), 55 (un jardin privatif...), 97 (un garage...) "...)
Donc plusieurs lots peuvent être rattachés au même descriptif d'appartement.
Cà c'est un cas simple...
Je te passe les copropriétés en volumes, les cas où les garages sont détachées de l'immeuble principal, ou situés à une adresse différente, et où dans ce cas il y a une imposition (ligne de la BD) distincte...
Moralité : MAJIC III est une donnée complexe, en rapport avec le droit (la fiscalité, la propriété...), pas qu'une simple BD (préfixe SG) wink
Solution : encore et toujours le guide MAJIC et toute la littérature déjà écrite ici.
Lire un règlement de copropriété, un EDD (état descriptif de division,) et un acte de propriété, çà peut aider à comprendre également.
Voir une déclaration H2 remplie aussi...

Sinon, ta requête me semble correcte, à prendre en exemple même.

...et à déplacer vers le forum "données" !
GeoRezomatiquement (çà va bientôt entrer dans le dico)


Jean-Michel
GeoRezo, c'est des blogs, un wiki, un Netvibes ...
GeoRezo vous aide ==> Aidez GeoRezo !

Hors ligne

 

#3 Tue 08 February 2011 12:25

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3169
Site web

Re: Urbanisme/Habitat : compter le nb de logement dans une base MAJIC2/3

Bonjour,

En complément de JM, il y a effectivement les cas de copropriété gérées par un EDD. Plus les PEV composantes d'un local hors EDD (la pièce professionnelle du cabinet du médecin, incluse dans l'appartement du médecin), les locaux sans EDD mais composés de plusieurs entités fiscale (deux appartements dans une même villa appartenant au même propriétaire) mais là pas de lots.
Il faut souligner que le lien lot-local n'est pas toujours renseigné.
Concernant le coefficient d'entretien, le Code Général des Impôts précise qu'il s'apprécie à la date d'évaluation du local. Donc un local évalué en 1970 avec un CE de 120 n'est pas forcement aujourd'hui dans un état d'entretien comparable à un local construit en 2010.


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#4 Tue 08 February 2011 13:35

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: Urbanisme/Habitat : compter le nb de logement dans une base MAJIC2/3

Jean-Michel a écrit:

Sinon, ta requête me semble correcte, à prendre en exemple même.


Merci. Par contre elle n'est pas libre de droit :p

J'espère juste que le fil donnée est tout aussi lu que Géomatique.

Pour ce qui est de la multiplicité des lots, j'ai pris soin, comme vous pouvez le voir de filtrer sur les lots d'habitations (code H de la PEV) et de ne retenir que les 001 de la dite PEV. Ce qui me donne un nombre "cohérent" de logements. Mais dès que je m'intéresse au local, là, j'explose ce nombre. Un problème de filtre, de jointure sur la table de description du local (la seule recelant les informations d'occupation/vacance), que sais-je.

***
En fait c'est le lien entre le local et le propriétaire du local qui est bancal. Mais je ne vois qu'une solution alternative, passer par les tables de description des PDL, mais cela n'a de sens que pour les PDL.

***

@Aline & JM. PS. Merci pour l'article sur les copropriétés? Une belle carte a pu être produite sur les densités de copro et leurs tailles.

Dernière modification par Pierre (Tue 08 February 2011 14:15)


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

#5 Tue 08 February 2011 14:49

Jean-Michel
Membre
Lieu: An Oriant /Lorient
Date d'inscription: 3 Oct 2005
Messages: 3909

Re: Urbanisme/Habitat : compter le nb de logement dans une base MAJIC2/3

J'espère juste que le fil donnée est tout aussi lu que Géomatique.


Le forum "données" prend ses marques, mais il est déjà bien lu (ce sujet a déjà été lu 80 fois depuis ton premier post )

dès que je m'intéresse au local, là, j'explose ce nombre. Un problème de filtre, de jointure sur la table de description du local


Cà ne serait pas plutôt un problème de jointure Lots-Proprio qui te cause souci (relation 1-n) ?

PS, je me suis permis de rajouter dans ton précédent post le lien vers l'article sur les copropriétés que tu cites wink


Jean-Michel
GeoRezo, c'est des blogs, un wiki, un Netvibes ...
GeoRezo vous aide ==> Aidez GeoRezo !

Hors ligne

 

#6 Wed 09 February 2011 10:34

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: Urbanisme/Habitat : compter le nb de logement dans une base MAJIC2/3

Aloha
Hier, j'ai trouvé le biais qui causait problème. Et effectivement, il s'agit bien du lien 1-n LOCAL-PROPRIO. En ne conservant que le premier propriétaire de la liste, je récupère un nombre de logement cohérent sur mon territoire.
Sans pour autant savoir si je n'évacue pas un peu vite des cas "extrêmes" : un propriétaire particulier groupé avec un propriétaire public (?), une SCI groupée avec un propriétaire public... Mais sont-ce des cas envisageables ?
Donc au final :

Code:

SELECT D.CCOAFF,
       D.DCAPEC AS "Catégorie",
       D.DCETLC AS "Coeff d'entretien",
       COUNT (D.INVAR),
          MJ2_BATI.CCOCOM
       || '000'
       || LPAD (LTRIM (MJ2_BATI.CCOSEC), 2, '0')
       || LPAD (MJ2_BATI.DNUPLA, 4, 0)
          AS CODE_PARC,
       -- MJ2_LOCAL.JDATAT AS "Année de mutation",
       MJ2_LOCAL.JANNAT AS "Année de construction",
       CASE
          WHEN MJ2_LOCAL.JANNAT BETWEEN 1949 AND 1974 THEN '1'
          WHEN MJ2_LOCAL.JANNAT BETWEEN 1975 AND 1989 THEN '2'
          WHEN MJ2_LOCAL.JANNAT BETWEEN 1990 AND 2003 THEN '3'
          WHEN MJ2_LOCAL.JANNAT > 2003 THEN '4'
          ELSE '0'
       END
          AS GROUPE_DATE,
       MJ2_LOCAL.CCONLC AS "Nature du local",
       MJ2_LOCAL.GPDL,
       MJ2_LOCAL.DNATLC,
       CASE MJ2_LOCAL.DNATLC
          WHEN 'D' THEN 'Domicile principal occupé par le propriétaire'
          WHEN 'L' THEN 'Loué'
          WHEN 'P' THEN 'Occupé par le propriétaire'
          WHEN 'V' THEN 'Vacant'
          ELSE DNATLC
       END
          AS OCCUPATION_MJ3,
       CASE
          WHEN MJ2_PROPRIO.CCOGRM = '0 ' THEN '1'
          ELSE MJ2_PROPRIO.GTOPER
       END
          AS "type de propriétaire",
       MJ2_PROPRIO.CCOGRM AS "code personne morale"
  FROM    MJ2_DESCPEV D
       INNER JOIN
          (   (   MJ2_BATI
               INNER JOIN
                  MJ2_LOCAL
               ON MJ2_BATI.INVAR = MJ2_LOCAL.INVAR)
           INNER JOIN
              MJ2_PROPRIO
           ON (MJ2_LOCAL.DNUPRO = MJ2_PROPRIO.DNUPRO
               AND MJ2_BATI.CCOCOM = MJ2_PROPRIO.CCOCOM))
       ON (D.INVAR = MJ2_BATI.INVAR)
 WHERE DNUPEV = 001 AND D.CCOAFF = 'H' AND MJ2_PROPRIO.DNULP = 01 
GROUP BY D.CCOAFF,
         D.DCAPEC,
         D.DCETLC,
            MJ2_BATI.CCOCOM
         || '000'
         || LPAD (LTRIM (MJ2_BATI.CCOSEC), 2, '0')
         || LPAD (MJ2_BATI.DNUPLA, 4, 0),
         MJ2_LOCAL.JANNAT,
         -- MJ2_LOCAL.JDATAT,
         MJ2_LOCAL.CCONLC,
         MJ2_LOCAL.GPDL,
         MJ2_LOCAL.DNATLC,
         CASE MJ2_LOCAL.DNATLC
            WHEN 'D' THEN 'Domicile principal occupé par le propriétaire'
            WHEN 'L' THEN 'Loué'
            WHEN 'P' THEN 'Occupé par le propriétaire'
            WHEN 'V' THEN 'Vacant'
            ELSE DNATLC
         END,
         CASE
            WHEN MJ2_PROPRIO.CCOGRM = '0 ' THEN '1'
            ELSE MJ2_PROPRIO.GTOPER
         END,
         MJ2_PROPRIO.CCOGRM;

Par contre je pense que l'on peut faire mieux pour le regroupement par tranche d'année de construction, mais je me contenterai de cela pour l'instant.
En tous les cas, merci à tous, l'exploration de la matrice continue.


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

#7 Wed 09 February 2011 11:27

Jean-Michel
Membre
Lieu: An Oriant /Lorient
Date d'inscription: 3 Oct 2005
Messages: 3909

Re: Urbanisme/Habitat : compter le nb de logement dans une base MAJIC2/3

Bonjour,
Pour sélectionner le propriétaire le plus "représentatif" dans les indivisions, tu peux prendre la notion utilisée par les services fiscaux : le redevable de l'impôt foncier, qui est identifié par un champ et une valeur spécifiques (je ne l'ai plus en tête).
Pour le regroupement par tranches d'années de construction, j'utilise les périodes inter-censitaires (périodes entre deux recensements), ce qui permet de comparer par rapport à l'évolution de la population.

JM


Jean-Michel
GeoRezo, c'est des blogs, un wiki, un Netvibes ...
GeoRezo vous aide ==> Aidez GeoRezo !

Hors ligne

 

#8 Wed 09 February 2011 17:30

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3169
Site web

Re: Urbanisme/Habitat : compter le nb de logement dans une base MAJIC2/3

Bonjour,

un propriétaire particulier groupé avec un propriétaire public (?), une SCI groupée avec un propriétaire public... Mais sont-ce des cas envisageables ?


Oui.

Pour la relation propriétaire local je la modélise pour ma part selon une relation n-n. La nature du droit exercé étant inscrite dans la table de jointure (ce qui donne bien sur des structures de requête différentes)

le redevable de l'impôt foncier, qui est identifié par un champ et une valeur spécifiques (je ne l'ai plus en tête).


Destinataire de l'avis d'imposition (boolean)  : gdesip à 1 si la personne est le destinataire en général la première du compte communal.


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#9 Sat 12 February 2011 15:08

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

Re: Urbanisme/Habitat : compter le nb de logement dans une base MAJIC2/3

Pierre

Jean-Michel et Christophe t'ont apporté beaucoup d'éléments et comme tu retombe sur tes pattes en nombre de logements, je pense que tu a bien avancé ...

Pour récapituler de mon côté les questions posées par ta requête voilà mes éléments d'infos :

-effectivement il est très important que tu trie les PEV qui correspondent à de l'habitation par le champ CCOAFF = H
ceci dit comme tu ta base de donnée est organisée avec une table "habprincip", que tu n'utilise plus d'ailleurs dans ta dernière requête ?, tu pourrais retourner ta requête en partant de cette table ...

-en ce qui concerne les doublons moi je trie toujours à partir de la PEV principale, donc IDPEV=001 comme tu l'a fait

-pour le proprio je retiens aussi celui qui est destinataire de l'avis d'imposition donc DNULP=01

-par contre pour le champ qui concerne les personnes morales CCOGRM c'est pas toujours bien complété à tel point que pour mon analyse des propriétés publiques je passe de préférence par le nom des propriétaires (style *Etat*), tout dépend de ton échelle de travail : est ce que tu veux produire des analyses à l'échelle d'un grand territoire ou avoir des données un peu plus précises ?

-toujours sur le même sujet la notion de personne morale est très relative : ça intégre par exemple les SCI, ça ne distingue pas le "bâti public" tel que tu en parle au départ ...

-concernant le champ DNATLC = D domicile principal occupé par le propriétaire, je ne l'ai jamais utilisé et dans mes bases il est très peu fréquent ?

Autrement, je trouve ta requête très intéressante et je serais intéressée par ta requête copro parce que comme je suis moins bonne que toi en SQL j'ai procédé en plusieurs étapes plutôt qu'en une requête (je maitrise mal le "case")

Aline

Hors ligne

 

#10 Tue 26 June 2012 13:19

lola34
Participant occasionnel
Date d'inscription: 26 Jun 2012
Messages: 15

Re: Urbanisme/Habitat : compter le nb de logement dans une base MAJIC2/3

Salut!

merci pour le post, très intéressant. j'ai quelques bases en SQL et en développement et je cherche à en apprendre d'avantage, mais c'est pas évident...

Hors ligne

 

Pied de page des forums

Powered by FluxBB