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 :

recherche hierarchique ascendante


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2006
    Messages : 188
    Par défaut recherche hierarchique ascendante
    Bonjour

    soit mes tables

    arbo avec 4 champs pere,entite_pere, fils et entite_fils
    detail avec les champ code ,categorie et entite

    code est la pk
    pere et fils ne contiennent que des valeurs de 'code'

    je souhaite rechercher les differentes categories de peres(voir les compter par categorie) pour chaque catégorie d'entité fils quel que soit leur level


    select lpad('----> ',(4*level),'----') || pere,fils
    from arbo
    start with entite='type1'
    connect by prior pere=fils;
    les jointures n'étant pas possible sql hierarchique je ne vois pas comment faire



    PS js suis sous oracle 8.1.7

  2. #2
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    peut-être quelque chose comme ça ?

    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
     
    select f.categorie fcat,
      substr(
        sys_connect_by_path(p.categorie,'/'),2,
          instr(sys_connect_by_path(p.categorie,'/')||'/',
            '/',2)-2) pcat
    from 
      arbo ,
      code p, 
      code f 
    where
      arbo.pere=p.code and 
      arbo.fils=f.code  
    connect by pere=prior fils
    order by 1,2;
    je n'ai pas testé en 8i, tu peux éventuellement précéder cette commande de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alter session set "_new_connect_by_enabled"=TRUE;
    ça devrait fonctionner en 8.1.7.4.

    Bon, il serait aussi utile de migrer vers une version moins ancienne et supportée, style 10gR2 ... il y aurait la possibilité alors de remplacer le pas très lisible substr par un connect_by_root

  3. #3
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Pk de arbo ?

  4. #4
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    d'après l'énoncé

    arbo.fils FK --> detail.code
    arbo.pere FK --> detail.code

    pas de pk

  5. #5
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2006
    Messages : 188
    Par défaut exact pas de pk
    la solution proposée fonstionne mais les temps de réponses sont assez longs

    ou peut on trouver des tuto ou cours sur les syntaxes sql sys_connect_by_path

    dans nos docs Oracle 8 nous n'avons que les syntaxes simples sql?

  6. #6
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    en fait il faut regarder dans la doc 9i ;-)

    cette fonction n'est pas supportée en 8i (d'où le paramètre underscore...)

  7. #7
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    une autre possibilité est de faire une procedure plsql qui boucle pour chaque employé, je ne sais pas si ça sera plus rapide.

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

Discussions similaires

  1. Classification hierarchique ascendante
    Par MBAYE BABACAR GUEYE dans le forum MATLAB
    Réponses: 6
    Dernier message: 28/08/2008, 12h41
  2. recherche des algorythmes pour images 2d
    Par exxos dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 24/05/2002, 13h46
  3. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 22h18
  4. [PRO*C] Recherche information
    Par Anonymous dans le forum Interfaces de programmation
    Réponses: 2
    Dernier message: 04/04/2002, 17h53
  5. Recherche de documentation complète en algorithmes
    Par Anonymous dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 29/03/2002, 12h09

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