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

SQL Oracle Discussion :

Requête Hierarchique Oracle


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 2
    Par défaut Requête Hierarchique Oracle
    Bonjour, j'aimerais savoir s'il est possible de ne pas retourné les enfants
    dans un requête hierarchique lorsque l'un de ses parents ne répond pas aux
    critères définis dans la clause WHERE?

    Exemple d'arbre
    1
    |--2
    | |--3
    | | |--6
    | |
    | |--4
    |
    |--5

    Si par exemple le noeud 2 ne répond pas aux critères, je ne voudrais pas que les noeuds 3 , 4 et 6 se retrouve dans le résultat de la requête suivante:

    SELECT No_Item
    FROM Table1
    WHERE Table1.Inactif = 0
    START WITH Table1.Id = 1
    CONNECT BY PRIOR Table1.Id = Table1.Id_Parent

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 270
    Par défaut

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 270
    Par défaut
    Les prédicats dans la clause connect by coupent la hierarchie.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select level, ename, job
        from emp
        connect by mgr = prior empno
           and job != 'ANALYST'
        start with mgr is null
    SQL> /

    LEVEL ENAME JOB
    --------- ---------- ---------
    1 KING PRESIDENT
    2 BLAKE MANAGER
    3 MARTIN SALESMAN
    3 ALLEN SALESMAN
    3 TURNER SALESMAN
    3 JAMES CLERK
    3 WARD SALESMAN
    2 CLARK MANAGER
    3 MILLER CLERK
    2 JONES MANAGER


    Avec :
    EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
    --------- ---------- --------- --------- --------- --------- --------- ---------
    7839 KING PRESIDENT 17-NOV-81 5000 10
    7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
    7782 CLARK MANAGER 7839 09-JUN-81 2450 10
    7566 JONES MANAGER 7839 02-APR-81 2975 20
    7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
    7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
    7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
    7900 JAMES CLERK 7698 03-DEC-81 950 30
    7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
    7902 FORD ANALYST 7566 03-DEC-81 3000 20
    7369 SMITH CLERK 7902 17-DEC-80 800 20
    7788 SCOTT ANALYST 7566 09-DEC-82 3000 20
    7876 ADAMS CLERK 7788 12-JAN-83 1100 20
    7934 MILLER CLERK 7782 23-JAN-82 1300 10

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 270
    Par défaut
    Pour être complet :

    Les prédicats dans la clause where : enlevent des lignes mais ne coupent pas la hierarchie.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     select level, ename
        from emp
        where job != 'ANALYST'
        connect by mgr = prior empno
        start with mgr is null
    LEVEL ENAME
    --------- ----------
    1 KING
    2 BLAKE
    3 MARTIN
    3 ALLEN
    3 TURNER
    3 JAMES
    3 WARD
    2 CLARK
    3 MILLER
    2 JONES
    4 SMITH
    4 ADAMS

  5. #5
    Nouveau candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 2
    Par défaut
    Merci jmguiche pour ton aide.

Discussions similaires

  1. Requête paramétrée Oracle
    Par alexandre_69 dans le forum SQL
    Réponses: 6
    Dernier message: 31/05/2007, 09h33
  2. Probléme avec une requéte mysql(Oracle 9)
    Par lmkrte dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/03/2007, 22h41
  3. Requête dans oracle
    Par bobmarley dans le forum Oracle
    Réponses: 3
    Dernier message: 08/12/2006, 11h09
  4. Réponses: 2
    Dernier message: 04/03/2006, 10h47
  5. Problème concaténation requête avec ORACLE
    Par kobe dans le forum Bases de données
    Réponses: 2
    Dernier message: 16/08/2005, 11h57

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