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 :

Affichage arborescence avec deux table


Sujet :

SQL Oracle

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Affichage arborescence avec deux table
    Bonjour

    j'ai une requete avec deux tables T1 et T2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select 1,level,t1.Parent,t1.ENFANT,t2.trie
    from T1,t2
    where 
    t1.enfant=t2.enfant (+)
    and t1.parent=t2.parent(+)
    connect by prior t1.enfant = t1.PARENT 
    --start with t1.PARENT ='GRAND_PERE' 
    order by t2.trie,t1.parent,t1.enfant

    j'ai le message suivant

    ORA-01437 cannot have join with CONNECT BY


    je compte beaucoup sur votre aide

    Mes amitiés

  2. #2
    Futur Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par hichamy Voir le message
    Bonjour

    j'ai une requete avec deux tables T1 et T2

    select 1,level,t1.Parent,t1.ENFANT,t2.trie
    from T1,t2
    where
    t1.enfant=t2.enfant (+)
    and t1.parent=t2.parent(+)
    connect by prior t1.enfant = t1.PARENT
    --start with t1.PARENT ='GRAND_PERE'
    order by t2.trie,t1.parent,t1.enfant


    j'ai le message suivant

    ORA-01437 cannot have join with CONNECT BY



    je compte beaucoup sur votre aide

    Mes amitiés
    je vous rappele que j'utiliste une 8.1....

  3. #3
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073

  4. #4
    Futur Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    je sais ce qu'il faut faire, je voudrais savoir s'il y a une solution miracle pour repondre a mon besoin (rigole)

    je sais pas si qulq a une proposition pour contourner le probléme

    merci par avance

  5. #5
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    si tu n'expliques pas ce que tu veux faire on aura du mal à t'aider

  6. #6
    Expert éminent
    Homme Profil pro
    Big Data / Freelance EURL
    Inscrit en
    Mars 2003
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Big Data / Freelance EURL

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 124
    Points : 7 291
    Points
    7 291
    Par défaut
    surtout que les requêtes récursives (CONNECT BY) c'est un chouilla complexe en général.

  7. #7
    Futur Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    SELECT last_name "Employee", LEVEL, depnameFROM employees ,dep
    WHERE deptno=employees.department_id
    AND department_id = 80
    START WITH last_name = 'King'
    CONNECT BY PRIOR employee_id = manager_id



    Si le select est sur deux tables ne fonctionne pas

    je crois que je vais passer par des vues materialisé

  8. #8
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par hichamy Voir le message
    je crois que je vais passer par des vues materialisé
    D'abord je serais curieux de voir comment ça pourrait régler le problème et surtout comment tu vas la rafraichir

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 354
    Points : 436
    Points
    436
    Par défaut
    Je n'ai pas un 8i sous la main mais ça marche pour 10.2
    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
     
    select *
    from v$version
     
    BANNER                                                           
    ---------------------------------------------------------------- 
    Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Prod 
    PL/SQL Release 10.2.0.2.0 - Production                           
    CORE	10.2.0.2.0	Production                                         
    TNS for Linux: Version 10.2.0.2.0 - Production                   
    NLSRTL Version 10.2.0.2.0 - Production                           
     
    5 rows selected
     
    SELECT ename "Employee", LEVEL, dname
    FROM emp ,dept
    WHERE dept.deptno=emp.deptno
    START WITH ename = 'SCOTT'
    CONNECT BY PRIOR empno = mgr
     
    Employee   LEVEL                  DNAME          
    ---------- ---------------------- -------------- 
    SCOTT      1                      RESEARCH       
    ADAMS      2                      RESEARCH
    Consultant et formateur Oracle

Discussions similaires

  1. Formlaire avec deux tables
    Par sakia dans le forum VBA Access
    Réponses: 3
    Dernier message: 19/05/2007, 02h13
  2. résultats requête avec deux tables
    Par ideal23 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 08/03/2007, 10h10
  3. affichage d'une valeur en relation avec deux tables
    Par mealtone dans le forum PHP & Base de données
    Réponses: 19
    Dernier message: 04/08/2006, 13h52
  4. Faire une procédure stockée avec deux tables
    Par mister3957 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/03/2006, 13h54
  5. Réponses: 8
    Dernier message: 13/03/2006, 17h37

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