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

Contribuez MySQL Discussion :

Reqquete Mysql pour selection et afficher des champs selon un critere d'organisation hierarchique


Sujet :

Contribuez MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    General Manager
    Inscrit en
    Janvier 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : General Manager

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3
    Points : 6
    Points
    6
    Par défaut Reqquete Mysql pour selection et afficher des champs selon un critere d'organisation hierarchique
    Bonjour,

    Je recherche une solution en MySQL pour résoudre le problème suivant :

    J'ai une table contenant les informations suivantes où les Niveau_X désigne l'organigramme (ou l'organisation hiérarchique):

    Niveau_X = non renseigné désigne le marqueur de la limite de l'organisation, par exemple pour le RA ZADI l'organisation s'arrête au service "Paie" = Niveau_2 :


    Responsable Hierarchique Niveau_0 Niveau_1 Niveau_2 Niveau_3 Niveau_4
    LEMY Direction Générale Direction Financière Comptabilité Comptabilité Fournisseurs
    ZOLA Direction Générale Direction Informatique Division Application Application RH
    ZADI Direction Générale Direction RH Paie
    ZOLA Direction Générale Direction Informatique Division Réseaux Infrastructures


    J'aimerais réaliser une requête MySQL qui me permette de récupérer le nom du Responsable Hierarchique et le/les services, on aura par exemple l'affichage suivant


    Responsable Hierarchique Services
    LEMY Comptabilité Fournisseurs
    ZOLA Application RH
    ZADI Paie
    ZOLA Infrastructures



    Cordialement

    PZ

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 134
    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 134
    Points : 38 557
    Points
    38 557
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Cette table est mal modélisée, elle n'est pas normalisée au sens Merise, il aurait fallu modéliser une relation entre entités/services de l'entreprise

    Mais il faut faire avec

    Donc, si l'absence de données dans les colonnes niveau_0 à niveau_4 se traduit par une valeur "null" alors il suffit de coder
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT responsable, 
           COALESCE(niveau_4, niveau_3, niveau_2, niveau_1, niveau_0) 
           from ma_table 
           where...

  3. #3
    Futur Membre du Club
    Profil pro
    General Manager
    Inscrit en
    Janvier 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : General Manager

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3
    Points : 6
    Points
    6
    Par défaut Merci, j'aii essayé cette fonction, ça marche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] requête pour trier et afficher des champs non vides
    Par girard.hubert dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 25/01/2010, 20h08
  2. Réponses: 27
    Dernier message: 12/04/2007, 10h23
  3. Réponses: 4
    Dernier message: 19/07/2006, 10h07
  4. Réponses: 7
    Dernier message: 09/02/2006, 16h51
  5. Requête pour récupérer le nom des champs
    Par legillou dans le forum JDBC
    Réponses: 1
    Dernier message: 08/02/2006, 16h09

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