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

MS SQL Server Discussion :

parcours d'un arbre en sql


Sujet :

MS SQL Server

  1. #1
    Membre habitué Avatar de dor_boucle
    Inscrit en
    Juin 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 147
    Points : 136
    Points
    136
    Par défaut parcours d'un arbre en sql
    Bonjour, j'ai fait, sans le savoir au depart, une table qui est la representation d'un arbre.
    En fait il s'agit de stocker la structure d'un menu
    Elle a cette tete :
    id_element : id dans la table
    element_name : le nom de mon élement de menu
    element_level : son niveau (pour determiner son type d'affichage et si par exemple c'est un lien)
    element_father : si jamais c'est un fil de.

    alors par exemple pour :
    MENU
    SOUS-MENU
    Groupe Liens 1
    -lien 1
    -lien 2
    Groupe Liens 2
    -lien3
    j'ai 1 / MENU / 0 / 0
    2 / SOUS-MENU / 10 / 1
    3 / groupe1 / 20 / 2
    4 / groupe2 / 20 / 2
    5 / lien 1 / 30 / 3
    6 / lien 2 / 30 / 3
    7 / lien3 / 30 / 4
    8 / MENU 2 / 0 / 0

    et j'aimerai construire une requete qui me trie cet arbre n-aire en partant des elements qui n'ont pas de pères - father = 0 - (ou si c'est plus simple des elements de niveau 0) puis les fils, puis les fils des fils...

    j'ai pensé à un produit en croix des tables, mais ce n'est pas souple du tout, car si jamais je rajoute un niveau là dedans, il faut que je remodifie ma requete,
    et j'ai trouvé un truc sur internet, en CONNECT BY ... = PRIOR ... START WITH .... mais SQL Server sur lequel je travaille actuellement n'a pas l'air d'apprécier cette syntaxe. si vous avez deux trois idées...
    merci d'avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 566
    Points
    19 566
    Billets dans le blog
    25

  3. #3
    Membre habitué Avatar de dor_boucle
    Inscrit en
    Juin 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 147
    Points : 136
    Points
    136
    Par défaut
    oula, ca depasse mon niveau de compétences actuelle... de plus je ne peux pas utiliser la methode de procédure recursive, mon sql server est pas assez jeune...

    j'aimerai une requete qui m'affiche ma table dans l'ordre de la racine aux feuilles, de la meme manière que cela est présenté dans le tutoriel avec le detourage en rouge. est ce que c'est cette requete qui y repond ?

    CREATE VIEW V_NOMENCLATURE_NMC
    AS
    SELECT NMC_ID, CAST(SPACE(NMC_NIVEAU)+ NMC_LIBELLE AS VARCHAR(64)) AS NMC_LIBELLE,
    NMC_NIVEAU, NMC_BG, NMC_BD,
    (SELECT COUNT(*)
    FROM T_NOMENCLATURE_NMC T2
    WHERE T2.NMC_BG > T1.NMC_BG
    AND T2.NMC_BD < T1.NMC_BD) AS NMC_NBR_DESCENDANT,
    NMC_DESCRIPTION
    FROM T_NOMENCLATURE_NMC T1

    merci.

Discussions similaires

  1. [DOM] Parcours d'un arbre
    Par dbeland dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 28/11/2006, 22h03
  2. Pb parcour d'un arbre.
    Par ptipoutche dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 08/11/2006, 17h15
  3. Réponses: 4
    Dernier message: 19/02/2006, 18h43
  4. [debutant] parcours en profondeur arbre n-aire
    Par tx dans le forum Langage
    Réponses: 1
    Dernier message: 15/02/2006, 03h56
  5. Ordre de parcours de l'arbre...
    Par Sylvain James dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 01/12/2002, 18h41

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