Bonjour à tous,

je rencontre un pb pour requêter dans une table (SQL 2008) du type F_NOMENCLAT dans laquelle existe 2 colonnes : AR_ref et NO_RefDet pour lesquelles il est possible que NO_RefDet = AR_ref (ce qui constitue un niveau de hiérarchie).
Le but est de "mettre à plat" un enregistrement. Pour exemple, le contenu de la table peut-être le suivant :
AR_Ref NO_RefDet
------- ----------
A B
A C
A D
D F
D G
F 1
F 2

avec un résultat attendu qui serait :
C1 C2 C3 C4
-- -- -- --
A B
A C
A D
A D F
A D F 1
A D F 2
A D G

mais la requête suivante échoue lamentablement dès la 3e colonne car elle ne fait que répéter, dans tous les cas, la 2e :

with tree (c1,c2,c3)
as (select ar_ref,no_refdet,NO_RefDet from F_NOMENCLAT union all select ar_ref,no_refdet,no_refdet from F_NOMENCLAT n
inner join tree t on t.c2=n.AR_Ref)
select * from tree

Merci de me donner vos avisés avis sur le sujet !