IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes PostgreSQL Discussion :

Création d'une vue ou table selon jointure multiples spatiales et attributaires


Sujet :

Requêtes PostgreSQL

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2017
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Création d'une vue ou table selon jointure multiples spatiales et attributaires
    Bonjour,

    J'aimerais avoir une table ou une vue qui réunit tous les enregistrements correspondant à des emboîtements spatiaux. Cette table serait remplie par des identifiants, selon les emboîtements spatiaux suivants :
    -une commune appartient à un département (pour le moment on ne sélectionne que les départements de l'Ile de France) : CREATE OR REPLACE VIEW test AS SELECT c.id, d.cod_dep FROM commune c LEFT JOIN department d ON (c.cod_zone = d.cod_dep) where d.cod_dep = '75' or d.cod_dep='93' or d.cod_dep='95'; -> la relation est basée sur une jointure attributaire
    -une iris appartient à une commune (jointure attributaire sur les communes sélectionnées ci-dessus)
    -une maille est contenue dans une iris (jointure spatiale sur les iris sélectionnées ci-dessus)
    -un bloc est contenu dans une maille
    et il existe encore trois autres paliers.

    J'essaie de créer soit une table de correspondance ou une vue pour voir ce que est le mieux. Malheureusement, je n'y arrive ni l'un ni l'autre...
    Je n'arrive pas à solutionner cette notion d'emboitement...d'un côté j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE OR REPLACE VIEW test AS 
    SELECT c.id, d.cod_dep 
    FROM commune c 
    LEFT JOIN department d ON (c.cod_zone = d.cod_dep) 
    WHERE d.cod_dep = '75' or d.cod_dep='93' or d.cod_dep='95';
    Maintenant je n'ai que le début de la chaine, il me faut ensuite les iris en faisant une jointure attributaire sur les communes que je viens de récupérer, puis avoir les mailles contenues spatialement dans les iris que je viens d'extraire, etc.
    Je ne vois pas comment faire l'emboitement...

    De l'autre j'ai tenté de créer une table et de remplir le champ comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE t201_territorial_grid.pf002_table_correspondance 
    SET id_commune=c.id commune c 
    WHERE cod_zone= '75' or cod_zone='93' or cod_zone='95'
    En sortie j'ai douze enregistrements qui correspondent à une seule commune...

    Merci!

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 088
    Points : 38 393
    Points
    38 393
    Billets dans le blog
    9
    Par défaut
    Bonjour

    Vu que vous vous filtrez sur des colonnes de la table OUTER (la table D) tout se passe comme si vous faisiez une jointure INNER

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 736
    Points : 52 447
    Points
    52 447
    Billets dans le blog
    5
    Par défaut
    Vous vous emmerdez pour pas grand chose. Il suffit de faire une agrégation spatiale des département pour obtenir les régions.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Création d'une vue pour deux tables
    Par Athanor027 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 26/10/2010, 08h10
  2. Création d'une vue sur des tables d'une base Oracle
    Par lcloatre dans le forum Requêtes
    Réponses: 0
    Dernier message: 21/04/2010, 16h41
  3. Création d'une vue
    Par Xris dans le forum Langage SQL
    Réponses: 6
    Dernier message: 29/01/2005, 17h30
  4. Réponses: 7
    Dernier message: 12/07/2004, 23h30
  5. [Plugin] Création d'une vue dynamiquement
    Par The Bonze dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 15/06/2004, 14h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo