Bonjour à tous,

Voici donc mon problème. J'ai une récursivité sur ma table produit et je voudrai savoir de combien de noeuds se compose un produit.
Je pense qu'une CTE résoudrai assez simplement cette exercice mais je bloque

Jeu de test:
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
 
declare @Prod TABLE (IdProd int, IdProdPere int)
 
INSERT INTO @Prod (IdProd, IdProdPere) VALUES (1,NULL)
INSERT INTO @Prod (IdProd, IdProdPere) VALUES (2,NULL)
INSERT INTO @Prod (IdProd, IdProdPere) VALUES (3,1)
INSERT INTO @Prod (IdProd, IdProdPere) VALUES (4,NULL)
INSERT INTO @Prod (IdProd, IdProdPere) VALUES (5,3)
INSERT INTO @Prod (IdProd, IdProdPere) VALUES (6,NULL)
INSERT INTO @Prod (IdProd, IdProdPere) VALUES (7,2)
INSERT INTO @Prod (IdProd, IdProdPere) VALUES (8,NULL)
INSERT INTO @Prod (IdProd, IdProdPere) VALUES (9,NULL)
INSERT INTO @Prod (IdProd, IdProdPere) VALUES (10,9)
INSERT INTO @Prod (IdProd, IdProdPere) VALUES (11,10)
INSERT INTO @Prod (IdProd, IdProdPere) VALUES (12,NULL)
INSERT INTO @Prod (IdProd, IdProdPere) VALUES (13,11)
 
SELECT * FROM @Prod
Le résultat souhaité est le suivant :
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
IdProd Qte
------ ---
     1   0
     2   0
     3   1
     4   0
     5   2
     6   0
     7   1
     8   0
     9   0
    10   1
    11   2
    12   0
    13   3