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Ă© ?

#1 Fri 27 July 2012 09:01

Christine Guillard
Participant occasionnel
Date d'inscription: 25 Jul 2012
Messages: 17

requĂȘte SQL sur fichiers DGI

Bonjour,

URGENT

je suis graphiste sur GEOMAP GIS et je connais un peu FME. Je n'ai jamais fait de requĂȘte SQL mais le service Informatique interne peut m'aider .

En l'absence du geomaticien habituel, le service Urbanisme de ma ville me demande d'extraire un fichier Xls des données cadastrales (DGI , wGeoPC).

- En fonction d'une section x, rechercher les adresses et noms des propriétaires de Bùtiments qui ont la catégorie 6,7,8 (classification de qualité )

Si vous avez  dĂ©jĂ  fait ce genre de requĂȘte, es-ce techniquement rĂ©alisable par une novice ??? si oui alors je cherche aussi les "traductions " des noms de tables (ou puis-je les trouver ?) pour mieux comprendre le langage...

Merci pour votre aide
Christine

Hors ligne

 

#2 Fri 27 July 2012 16:52

simo lay
Participant assidu
Date d'inscription: 8 Dec 2011
Messages: 172

Re: requĂȘte SQL sur fichiers DGI

Bonjour,
est ce que tes bases DGI sont spatiales si oui une requĂȘte d'intersection entre la couche des sections et  la couches des parcelles(avec les propriĂ©taires)  suffit, si non  il faut se baser sur la table des propriĂ©taires et tu fais une sĂ©lection sur la rĂ©fĂ©rence de parcelle qui contient la section

Dernière modification par simo lay (Fri 27 July 2012 17:04)

Hors ligne

 

#3 Mon 30 July 2012 12:15

Christine Guillard
Participant occasionnel
Date d'inscription: 25 Jul 2012
Messages: 17

Re: requĂȘte SQL sur fichiers DGI

Bonjour,

Oui, elles sont spatiales, pourquoi?

Christine GUILLARD

Hors ligne

 

#4 Mon 30 July 2012 14:09

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

Re: requĂȘte SQL sur fichiers DGI

Bonjour,

Le problĂšme c'est aussi que ne connaissant pas le modĂšle MAJIC utilisĂ© par vos services, il est difficile de vous donner le chemin Ă  emprunter pour crĂ©er votre requĂȘte SQL.

Quelques pistes peuvent ĂȘtre trouvĂ©e sur le blog parcellair de Georezo (ici : http://georezo.net/blog/)

En attendant :

Code:

/*
Sous réserve d'utiliser une base Oracle
*/

SELECT LPAD (LTRIM (MJ2_BATI.CCOSEC), 2, '0') AS "Section Cadastrale",
MJ2_BATI.DNVOIRI AS "Numéro de voirie du logement",
       MJ2_BATI.DVOILIB AS "Libellé de voie du logement",
       D.CCOAFF,
       D.DCAPEC AS "Catégorie",
       D.DCETLC AS "Coeff d'entretien",
          --COUNT (D.INVAR) AS "NB LOGEMENT",
          MJ2_BATI.CCOCOM
       || '000'
       || LPAD (LTRIM (MJ2_BATI.CCOSEC), 2, '0')
       || LPAD (MJ2_BATI.DNUPLA, 4, 0)
          AS CODE_PARC,

       MJ2_LOCAL.JANNAT AS "Année de construction",
       CASE
          WHEN MJ2_LOCAL.JANNAT BETWEEN 1949 AND 1974 THEN '1949 - 1974'
          WHEN MJ2_LOCAL.JANNAT BETWEEN 1975 AND 1989 THEN '1975 - 1989'
          WHEN MJ2_LOCAL.JANNAT BETWEEN 1990 AND 2003 THEN '1990 - 2003'
          WHEN MJ2_LOCAL.JANNAT > 2003 THEN 'post 2003'
          ELSE 'avant 1949'
       END
          AS GROUPE_DATE,
       MJ2_LOCAL.CCONLC AS "Nature du local",

       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,
       DECODE (MJ2_PROPRIO.DNATPR,
               'ECF', 'ECONOMIQUEMENT FAIBLE (NON SERVI)',
               'FNL', 'FONCTIONNAIRE LOGE',
               'DOM', 'PROPRIETAIRE OCCUPANT DOM',
               'HLM', 'OFFICE HLM',
               'SEM', 'SOCIETE D ECONOMIE MIXTE',
               'TGV', 'SNCF',
               'RFF', 'RESEAU FERRE DE FRANCE',
               'CLL', 'COLLECTIVITE LOCALE',
               'CAA', 'CAISSE ASSURANCE AGRICOLE',
               '')
          AS "Nature de la personne",
       CASE
          WHEN MJ2_PROPRIO.CCOGRM = '0 ' THEN 'Personne Physique'
          ELSE 'Personne Morale'
       END
          AS "type de propriétaire",
       MJ2_PROPRIO.CCOGRM AS "code personne morale",
       DECODE (TRIM (MJ2_PROPRIO.CCOGRM),
               0, 'PERSONNES MORALES NON REMARQUABLES',
               1, 'ETAT',
               2, 'REGION',
               3, 'DEPARTEMENT',
               4, 'COMMUNE',
               5, 'OFFICE HLM',
               6, 'PERSONNES MORALES REPRESENTANT DES SOCIETES',
               7, 'COPROPRIETAIRE',
               8, 'ASSOCIE',
               9, 'ETABLISSEMENTS PUBLICS OU ARGANISMES ASSIMILES',
               '')
          AS "Type de personne morale",
       CASE TRIM (MJ2_PROPRIO.GTOPER)
          WHEN '1'
          THEN
                CASE TRIM (BOTH FROM MJ2_PROPRIO.DQUALP)
                   WHEN 'M' THEN 'M.'
                   ELSE TRIM (BOTH FROM MJ2_PROPRIO.DQUALP)
                END
             || ' '
             || REGEXP_SUBSTR (MJ2_PROPRIO.DDENOM1, '([A-Z]*)', 1)
             || ' '
             || REGEXP_SUBSTR (MJ2_PROPRIO.DDENOM1,
                               '[^\/]+',
                               1,
                               2)
          ELSE
             MJ2_PROPRIO.DDENOM1
       END
          AS "Propriétaire"
  FROM    MJ2_DESCPEV D /*La table de description de la partie évaluation suffisante pour les données bùti*/
       INNER JOIN
          (   (   MJ2_BATI /*La table du bĂąti*/
               INNER JOIN
                  MJ2_LOCAL /*La table des locaux décrits*/
               ON MJ2_BATI.INVAR = MJ2_LOCAL.INVAR)
           INNER JOIN
              MJ2_PROPRIO /*La table des propriétaires*/
           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' /*Contrainte pour ne s'occuper que de l'habitat*/
       AND MJ2_PROPRIO.DNULP = 01 /*Contrainte sur le numéro d'ordre du propriétaire*/
       AND REGEXP_SUBSTR (D.DCAPEC, '^((6)|(7)|(8))') IS NOT NULL /*Contrainte sur les catégories de logement*/
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.DNATPR,
         MJ2_PROPRIO.CCOGRM,
         MJ2_PROPRIO.DQUALP,
         MJ2_PROPRIO.GTOPER,
         MJ2_PROPRIO.DDENOM1,
         MJ2_BATI.DNVOIRI,
         MJ2_BATI.DVOILIB;

Voilà, en espérant que cela vous sera utile.

Cordialement


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 Mon 30 July 2012 14:09

VianneyD
Participant assidu
Date d'inscription: 30 May 2011
Messages: 153

Re: requĂȘte SQL sur fichiers DGI

Bonjour,

Je ne connais pas la structuration de vos données, mais si elles sont identiques à celles des fichiers de la DGFIP, le mieux selon moi est de faire une jointure sémantique sur le compte communal, du type :

Code:

SELECT prop.ddenom, prop.dlign3, prop.dlign4, prop.dlign5, prop.dlign6
FROM bati, prop
WHERE prop.ccocom LIKE bati.ccocom
AND prop.dnupro LIKE bati.dnupro
AND bati.ccocom LIKE '001'
AND bati.ccosec LIKE 'XX'

Si vous l'exécutez dans votre SGBD, vous récupÚrerez pour chaque propriété bùtie de la section XX de la commune '001' : le propriétaire et son adresse. Vous aurez normalement la possibilité de les exporter en csv et ainsi les visualiser sous Excel.

La nomenclature des champs (ici nommĂ©s tels quels) est dĂ©livrĂ©e par la DGFIP en mĂȘme temps que les fichiers fonciers.

Sans garantie bien sĂ»r, la requĂȘte est Ă  adapter selon vos donnĂ©es.

En espérant que cela aidera.

Dernière modification par VianneyD (Mon 30 July 2012 14:12)


Vianney Dugrain

Hors ligne

 

#6 Mon 30 July 2012 14:41

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 10054
Site web

Re: requĂȘte SQL sur fichiers DGI

Bonjour Vianney,

Quelle est l'utilité d'utiliser des LIKe pour les jointures sans le symbol % ?

Pour moi cela revient Ă  utiliser le symbol = sans pouvoir utiliser d'index.

Y.


Yves Jacolin, bĂ©nĂ©vole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous dĂ©partage !!  - GeoRezo vous aide ? Aidez GeoRezo !

En ligne

 

#7 Mon 30 July 2012 14:55

VianneyD
Participant assidu
Date d'inscription: 30 May 2011
Messages: 153

Re: requĂȘte SQL sur fichiers DGI

Bonjour,

C'est juste une (mauvaise !) habitude que j'ai prise d'utiliser des LIKE pour comparer des caractĂšres.
Le = est beaucoup plus approprié ici, il est vrai.


Vianney Dugrain

Hors ligne

 

#8 Mon 30 July 2012 16:26

Christine Guillard
Participant occasionnel
Date d'inscription: 25 Jul 2012
Messages: 17

Re: requĂȘte SQL sur fichiers DGI

Merci Ă  vous tous pour votre aide.

Voici ce que ma collÚgue informaticienne m'a sorti comme données.
J'oserai encore abuser de votre collaboration pour vous demander comment peut-on faire pour exporter sur un tableau XLS (sans passer par copier/coller)

Bonne fin de journée

Christine GUILLARD


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#9 Mon 30 July 2012 16:32

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 10054
Site web

Re: requĂȘte SQL sur fichiers DGI

Bonjour,

Quelque chose comme cela  (pour postgreSQL) :

Code:

CREATE TABLE TEMP AS SELECT ...

Sous Oracle cela devrait fonctionner sans le "TEMP" qui permet de créer une table temporaire (qui sera effacer lors de la déconnexion).

Dans un deuxiĂšme temps un COPY INTO file permet de sauver le contenu de la requĂȘte au format CSV.

Les pro d'Oracle donneront les requĂȘtes Ă©quivalentes smile


Y.


Yves Jacolin, bĂ©nĂ©vole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous dĂ©partage !!  - GeoRezo vous aide ? Aidez GeoRezo !

En ligne

 

#10 Mon 30 July 2012 16:42

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

Re: requĂȘte SQL sur fichiers DGI

SQLDevelopper sait trÚs bien faire ça tout seul à mon avis. Genre clic droit sur le résultat.
Sinon,

Code:

Spool c:\monnomdefichier.csv
<la requĂȘte>
Spool off

Mais bon c'est capital de savoir ça pour faire du Oracle. ^^


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

 

#11 Tue 31 July 2012 09:30

Christine Guillard
Participant occasionnel
Date d'inscription: 25 Jul 2012
Messages: 17

Re: requĂȘte SQL sur fichiers DGI

Merci

Christine GUILLARD

Hors ligne

 

#12 Wed 01 August 2012 16:58

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

Re: requĂȘte SQL sur fichiers DGI

Christine

Attention cependant Ă  l'utilisation du critĂšre "DCAPEC" car il n'est pas tenu Ă  jour, de + il est normal qu'apparaissent beaucoup de logements HLM puisque ceux ci sont automatiquement comptabilisĂ©s dans certaines catĂ©gories et aussi pour les logements financĂ©s avec des prĂȘts aidĂ©s je crois.
Il serait bon d'approfondir la question de savoir ce qu'est exactement le demande ? si c'est un indicateur pour une copro par exemple il est intéressant d'extraire la part du locatif et des vacants, ...
Par ailleurs dans mes fichiers j'ai trouvĂ© aussi des classifications 6M, 7M, ... je ne sais pas si ça a un sens particulier mais il faut peut-ĂȘtre en tenir compte dans la requĂȘte ?

AlineC

Hors ligne

 

#13 Thu 02 August 2012 09:14

Christine Guillard
Participant occasionnel
Date d'inscription: 25 Jul 2012
Messages: 17

Re: requĂȘte SQL sur fichiers DGI

Aline

Merci pour l'info mais J'ai fournis ce fichier au service Urba et cela semble leur convenir...
Dans quel "critÚre" aurais-je du trouver ces qualifications (catégories) ?

Bonne fin de soirée

Christine GUILLARD

Hors ligne

 

#14 Thu 02 August 2012 09:30

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

Re: requĂȘte SQL sur fichiers DGI

Bonjour,

En faisant :

REGEXP_SUBSTR (D.DCAPEC, '^((6)|(7)|(8))') IS NOT NULL


Cela permet d'avoir les valeurs 6,7,8 de CAPEC mais aussi 6M, 7M, 8M.

Cordialement,


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

 

#15 Thu 02 August 2012 13:45

Christine Guillard
Participant occasionnel
Date d'inscription: 25 Jul 2012
Messages: 17

Re: requĂȘte SQL sur fichiers DGI

Bonjour

Merci beaucoup pour cet info, nous allons vérifier sur notre base

Bonne journée

Christine GUILLARD

Hors ligne

 

Pied de page des forums

Copyright Association GeoRezo