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

Développement SQL Server Discussion :

Sélection de tous les dossiers d'une arborescence [2014]


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    France
    Inscrit en
    Juillet 2016
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : France
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 75
    Par défaut Sélection de tous les dossiers d'une arborescence
    Bonjour,

    J'ai un arbre dossiers et de fichier sur ma base de donnée. Je suis bloqué car je souhaite faire un tableau qui possède tous les noms de tous les sous dossiers du dossiers père, qui eux mêmes ont des sous dossiers ect... Je souhaite avoir une table qui prend en compte tous les niveaux hiérarchiques en dessous du père.

    Tous les dossiers sont dans la même table. La différence entre les deux lignes, c'est que le fils possède l'information de qui est son père dans cette même table (clé primaire du père). Je sais comment sélectionner toutes les ligne qui se réfère à un père mais je ne sais pas comment passer au niveau 2, 3, etc.

    Auriez vous des pistes ou des fonctions qui permettraient de réaliser une telle requête ?

    Par avance je vous remercie.

    Cordialement,

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    bonjour,

    Il faut passer par une requête récursive

  3. #3
    Membre confirmé
    Homme Profil pro
    France
    Inscrit en
    Juillet 2016
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : France
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 75
    Par défaut
    Bonjour,

    Premièrement désolé pour le délai de réponse, j'étais en vacances.

    Il semble que se soit bien de la récursivité dont j'ai besoin.

    L'erreur suivante s'affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Msg*530, Niveau*16, État*1, Ligne*1
    L'instruction a été terminée. La récursivité maximale 100 a été épuisée avant la fin de l'instruction.
    Pouvez vous m'aiguiller ?

    Cordialement,

  4. #4
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Par défaut
    Bonjour,

    Placer OPTION (MAXRECURSION n) à la fin de votre requête, avec n le nombre de récursivité, 0 pour aucune limite...

    Cordialement,
    Chtulus
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  5. #5
    Membre confirmé
    Homme Profil pro
    France
    Inscrit en
    Juillet 2016
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : France
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 75
    Par défaut
    Bonjour,

    Toutes vos réponses m'ont été d'un précieux secours, merci pour ça. Elles m'amènent à la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    with tree (code, num)
    as (select CODE_UI, CLE_PERe 
    	from t_ui
    	where CODE_UI = 'XXXXXX'
    	union all
    	select code_ui, cle_pere
    	from t_ui ui
    		INNER join tree t
    		on t.num = ui.NUM_UI)
    select * from tree 
    	/*inner join t_bt bt on bt.CLE_UI = tree.num*/
    option (maxrecursion 0)
    La requête fonctionne de façon à "remonter l’arborescence" mais je souhaite faire l'inverse en faisant ma sélection sur ce qu'il y a en "dessous" de mon code_ui... Je ne sais pas si je suis bien clair.

    Par avance je vous remercie.

    Alexandre

  6. #6
    Membre confirmé
    Homme Profil pro
    France
    Inscrit en
    Juillet 2016
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : France
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 75
    Par défaut
    Du coup j'ai trouvé ma réponse : il faut inverser son raisonnement !

    Merci pour les réponses sur ce ticket

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/04/2014, 16h21
  2. Sélection de tous les dessins d'une feuille en VBA ?
    Par Zebulon777 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/11/2012, 15h51
  3. Réponses: 3
    Dernier message: 02/09/2010, 00h12
  4. Réponses: 1
    Dernier message: 06/12/2007, 16h50
  5. Sélection de tous les champs d'une sous-Requête que je redéfini
    Par electrosat03 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 28/06/2007, 16h43

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