Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/01/2011, 12h19   #1
Invité de passage
 
Inscription : novembre 2003
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 4
Points : 2
Points : 2
Par défaut Requête relation enfant parent : 1 table

Bonjour à tous,

J'ai une table que l'on va simplement résumer par :
-un id
-un id parent

Un enregistrement n'a donc qu'un seul (ou aucun) parent mais peut avoir plusieurs enfants.

Je souhaite créer une requête SQL qui, à partir d'un id, retourne tous les enfants, les petits enfants etc.

J'ai parcouru un peu les forums, je suis tombé sur des requêtes récursives mais j'ai du mal à appliquer ce principe, qui est nouveau pour moi, à mon cas concret.

Merci de votre aide ! Bonne journée !
irid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2011, 14h26   #2
Invité de passage
 
Inscription : novembre 2003
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 4
Points : 2
Points : 2
avec ce sujet : http://www.developpez.net/forums/d31...ie-meme-table/

j'ai pu m'en sortir, merci à son auteur

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
DECLARE @Id_compte int
SET @Id_compte=2;
 
WITH Table_CTE(comp_companyid, comp_name, Niveau) AS 
(
SELECT comp_companyid, comp_name, 1 AS Niveau
FROM company
WHERE comp_ssdi_dependsociete=@Id_compte
 
UNION ALL
 
SELECT e.comp_companyid, e.comp_name, Niveau + 1
FROM company e
INNER JOIN Table_CTE d
ON e.comp_ssdi_dependsociete= d.comp_companyid
)
 
SELECT Niveau,comp_companyid, comp_name
FROM Table_CTE
irid est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h03.


 
 
 
 
Partenaires

Hébergement Web