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

PL/SQL Oracle Discussion :

ORACLE: Requete hierarchique SQL


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2008
    Messages : 41
    Par défaut ORACLE: Requete hierarchique SQL
    Bonjour,

    J’ai une table de la forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    pere   |   fils 
    A       |    B
    A       |    C
    A       |    D
    A       |    D
    C       |    E
    F       |    G
    F       |    H
    J’aimerais pouvoir extraire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    pere   |   fils 
    A       |    E
    A       |    B
    A       |    D
    F       |    G
    F       |    H
    C’est à dire n’extraire que les racines et feuilles de chaque arbre présents dans la table

    J’ai essayé de faire une requête de la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT
          SYS_CONNECT_BY_PATH(pere,'/') AS arbo, 
          CONNECT_BY_ISLEAF AS IsLeaf,
          pere,
          fils, 
          LEVEL as niveau
      FROM 
          matable
      CONNECT BY NOCYCLE PRIOR fils = pere
    Le résultat n’est pas satisfaisant car la table n’est pas totalement hiérarchique (plusieurs pères)

    Je pense qu’il faut faire une procedure avec boucle et curseurs avec une liste, mais c’est là que je bloque un peu

    D’avance merci pour votre aide

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Vous n'avez pas précisé votre version.
    En 11g :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    with MaTable as
    (
    select 'A' as pere, 'B' as fils from dual union all
    select 'A'        , 'C'         from dual union all
    select 'A'        , 'D'         from dual union all
    select 'A'        , 'D'         from dual union all
    select 'C'        , 'E'         from dual union all
    select 'F'        , 'G'         from dual union all
    select 'F'        , 'H'         from dual
    )
        select distinct
               connect_by_root pere as pere,
               fils
          from matable
         where connect_by_isleaf = 1
         start with pere not in (select fils from matable) 
    connect by nocycle pere = prior fils;
     
    PERE FILS
    ---- ----
    A    D
    A    B
    F    H
    F    G
    A    E

  3. #3
    Membre averti
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2008
    Messages : 41
    Par défaut Requete hierarchique SQL
    Bonjour,

    Désolé pour cette réponse tardive, mais cela a bien marché !!

    Merci !!!

    @++

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

Discussions similaires

  1. Quel SGBD choisir : Oracle ou Microsoft SQL-Server ?
    Par dellibmdell dans le forum Décisions SGBD
    Réponses: 94
    Dernier message: 06/03/2013, 23h42
  2. SQL Oracle - probleme Requete hierarchique
    Par mikway dans le forum Débuter
    Réponses: 1
    Dernier message: 16/08/2011, 15h22
  3. [Oracle 8i][PL/SQL] requetes, SQLERRM & EXCEPTION
    Par Bahan dans le forum Oracle
    Réponses: 5
    Dernier message: 04/10/2007, 17h11
  4. Réponses: 1
    Dernier message: 01/09/2006, 15h05
  5. [SQL - ORACLE] Requete un peu compliquée (pour moi)
    Par Worldofdada dans le forum Langage SQL
    Réponses: 15
    Dernier message: 03/11/2005, 08h25

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