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 :

Vues (views) et affichage graphique


Sujet :

Requêtes PostgreSQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Vues (views) et affichage graphique
    Bonjour à tous,

    rentrons tout de suite dans le vif du sujet:

    Je travaille sur le progiciel aigle pour un projet de mise à disposition de sentiers pour le grand public. Mes données sont structurées de la façon suivante:

    les géométries des sentiers d'un coté et les caractéristiques de chaque sentier dans une autre table.

    Mon principal soucis est que lorsque je fais appel à un sentier x, il m'affiche la boucle correspondante mais comme les géométries sont découpées en tronçons il retrouve x tronçons au lieu de 1 plus pratique pour l'exportation des informations sous fiche pdf pour l'utilisateur novice.

    Ma question est donc la suivante: Est il possible avec les vues (views) de regrouper ces tronçons dans la table pour que quand on les appellent ils ne fassent qu'un? et si cela est possible, quel type de requête SQL devrais je envoyer dans ma vue.


    j'espère avoir été clair,
    merci d'avance
    bon courage dans vos projets

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Pouvez-vous poster la structure de vos tables, la requete actuelle, et le résultat que vous voulez obtenir ? ça aiderait à mieux comprendre ce que vous voulez.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    sentiers.zip

    alors voila la structure de ma BdD, pour mes requêtes, elle se fait dans la table "relation_sentier_nom" qui est géocodée avec la table "sentiers_planariser".

    Je fais donc une requète de type (exemple):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select id_sentiers_nom = 35 
    where "relation_sentier_nom".id_sentiers =  "sentiers_planariser".id_sentiers.
    J'ai donc comme résultat tous les id_sentiers de la table "sentiers_planariser" correspondant aux id_sentiers ayant un id_sentiers_nom = 35 dans la table "relation_sentiers_nom".

    D'après mes sources il est possible avec les vues (views) de faire apparaitre les mêmes id_sentiers regroupés.

    J'espère avoir été plus clair.
    Je te remercie pour la première réponse

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    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 768
    Points : 52 577
    Points
    52 577
    Billets dans le blog
    5
    Par défaut
    Il faut faire une opération d'agrégation spatiale des tronçons avec un GROUP BY sur l'identifiant du sentier, puis joindre les données de la table de détail au final.

    Vous trouverez un exemple dans mon livre sur SQL au chapitre "Système d'information géographique", ou je fais l'agrégation spatiale des départements pour former des 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/ * * * * *

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    La fonction GROUP BY ne semble pas correspondre puisque je ne veux faire d'addition de mes tronçons je recherche seulement à pouvoir visualiser l'information résumée du type:

    nom_sentier id_sentiers
    sentier de l'arbuel 1658
    1544
    566
    5888
    circuit vtt 5 155
    1520
    566
    2005
    55

    est ce plus clair ?

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    les problèmes de présentations de ce type sont réservé à la partie applicative qui s'occupe de présenter les résultats.

    Pour vous aider ceci dit, rien ne vous empêche de faire une jointure puis un tri au niveau de la requête sql.

    Vous aurez en sortie ce type de résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    sentier de l'arbuel 	1658
    sentier de l'arbuel 	1544
    sentier de l'arbuel 	566
    sentier de l'arbuel 	5888
    circuit vtt 5 	155
    circuit vtt 5	1520
    circuit vtt 5	566
    circuit vtt 5	2005
    circuit vtt 5	55

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par punkoff Voir le message
    les problèmes de présentations de ce type sont réservé à la partie applicative qui s'occupe de présenter les résultats.

    Pour vous aider ceci dit, rien ne vous empêche de faire une jointure puis un tri au niveau de la requête sql.

    Vous aurez en sortie ce type de résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    sentier de l'arbuel 	1658
    sentier de l'arbuel 	1544
    sentier de l'arbuel 	566
    sentier de l'arbuel 	5888
    circuit vtt 5 	155
    circuit vtt 5	1520
    circuit vtt 5	566
    circuit vtt 5	2005
    circuit vtt 5	55
    c'est déja le résultat que j'obtiens, merci de vos réponses, je vais tenter de trouver une solution à mon problème.

    Je posterais si jamais j'arrive par miracle à trouver une solution.

    cordialement.

  8. #8
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Ce que tentait de vous dire punkoff, c'est qu'il serait (largement) préférable de traiter cette problématique dans la partie applicative, à savoir le programme qui va afficher le résultat de la requête. L'ORDER BY servant a simplifier la tache dans ce programme.

    Car ce n'es pas du ressort du SGBD de se charger de la présentation (de la même manière, ce n'est pas a SQL de mettre en rouge ou en vert certains résultats de la requête !)

    Car en SQL pur, ça donnera quelque chose d'assez... moche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT 
      CASE WHEN ROW_NUMBER() OVER(PARTITION BY nom_sentier  ORDER BY id_sentiers) =  1 THEN nom_sentier ELSE '' END
      ,id_sentiers
    FROM ...
    ORDER BY nom_sentier , id_sentiers;

  9. #9
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonsoir,

    Je viens de rajouter quelque chose, c'est vraiment la requête ?

    Citation Envoyé par mdubuis Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select id_sentiers_nom = 35 
    where "relation_sentier_nom".id_sentiers =  "sentiers_planariser".id_sentiers.
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



Discussions similaires

  1. [MySQL] Probleme d'exploitation d'une vue (VIEW) pour un tableau
    Par nico4731 dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 03/02/2006, 14h26
  2. [MFC Visual C++]conseil sur affichage graphiques
    Par C++beginner dans le forum MFC
    Réponses: 6
    Dernier message: 10/01/2006, 06h47
  3. Mode d'affichage graphique 13h ?
    Par xavman dans le forum Assembleur
    Réponses: 24
    Dernier message: 08/02/2005, 14h06
  4. Affichage graphique sous forme de tableau.
    Par eulone dans le forum C++
    Réponses: 2
    Dernier message: 24/11/2004, 20h34
  5. [TP]Affichage graphique
    Par maleklegolas dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 02/11/2003, 19h42

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