discmat | Hi all,
voici une problématique sur une requete récusive.
Schéma :
* des noeuds à niveaux potentiellement infini
* des feuilles (de type feuille) et qui ont une qualification (un pays).
Je veux afficher les arbres complets (le tableau qui représente l'arbre ...) mais seulement pour les arbre qui ont au mois une feuille dans le Pays désiré.
Pour la faire simple le code suivant est utilisé actuellement : Elle part du bas (test de la feuille) pour remonter vers le haut (d'ou le distinct) mais je suis pas sur que ca soit OK la requete tourne en rond car performance pas géniale.
Vous auriez une meilleure méthode ou des conseils sur la récursivité ?
merci.
Code :
- WITH
- cteReports (id, name, fatherId)
- AS
- (
- SELECT acc.id, acc.name, acc.fatherId
- FROM account acc
- where acc.type = 'Leaf' and acc.country = 'EXAMPLE'
- UNION ALL
- SELECT acc.id, acc.name, acc.fatherId
- FROM account acc
- INNER JOIN cteReports r
- ON acc.Id = r.fatherId
- )
- SELECT distinct
- name,
- fatherId,
- FROM cteReports
- option (maxrecursion 0)
|
|