Bonjour,
j'ai un soucis de requête récursive.
Voici ce que je cherche à faire :
Récupérer tous les accessoires, sous-accessoires ... des produits
Voici mes tables :
Produit (IdProduit, IdGroupeAccessoire)
GroupeAccessoire (IdGroupeAccessoire)
ProduitGroupeAccessoire(IdProduitGroupeAccessoire, IdProduit, IdGroupeAccessoire)
En gros un produit à un groupe d'accessoires qui sont également des produits, et ces produits peuvent également avoir des groupes d'accessoires et ainsi de suite ...
Voici mon message d'erreur :
Voici mon code :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.
Par contre si j'enlève le commentaire (where p.IdProduit = 865) pour un IdProduit donné, cette requête fonctionne.
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
19
20
21
22 WITH tree (IdProduitPrincipal, IdGroupeAccessoire, IdProduitAcc) as ( select p.IdProduit as IdProduitPrincipal, p.IdGroupeAccessoire, pga.IdProduit as IdProduitAcc from Produit p join GroupeAccessoire ga on ga.IdGroupeAccessoire = p.IdGroupeAccessoire join ProduitGroupeAccessoire pga on pga.IdGroupeAccessoire = ga.IdGroupeAccessoire --where p.IdProduit = 865 UNION ALL select p.IdProduit, p.IdGroupeAccessoire, pga.IdProduit as IdProduitAcc from produit p join GroupeAccessoire ga on ga.IdGroupeAccessoire = p.IdGroupeAccessoire join ProduitGroupeAccessoire pga on pga.IdGroupeAccessoire = ga.IdGroupeAccessoire join tree t on t.IdProduitAcc = p.IdProduit ) select * from tree order by IdProduitPrincipal --OPTION (MAXRECURSION 100) ;
Que dois je faire, je ne comprends pas l'erreur !
Partager