J'ai une table relationnelle (id, parentId, nom)Transformer une table de parent/enfant à une colonne fixe dimentionnelle
que je voudrais convertir à une table dimentionnelle aplaties
(id , Niveau1, Niveau2, Niveau3, Niveau4)
Je vais bien fixer la profondeur à 4 profondeur.
J'ai fait des progrès avec un CTE récursive et pivot, mais le jeu de résultats n'est pas droit
Je reçois
Id Name Level1 Level2
0 Root NULL NULL
1 NULL L1 NULL
mais je dois
Id Name Level1 Level2
0 Root NULL NULL
1 Root L1 NULL
ce qui est ici, je avoir à ce jour
with rcte as
(
select h.id
,h.parent_id
,h.name
,1 as HierarchyLevel
FROM RelTable h
where id = 1
union all
select h2.id
, h2.parent_id
, h2.name
, r.HierarchyLevel + 1 AS HierarchyLevel
FROM RelTable h2
inner join rcte r on h2.parent_id = r.id
)
select id, parent_id, [1] as L1,[2] as L2,[3] as L3, [4] as L4
from (
select id,parent_id,name,HierarchyLevel from rcte
) as src
pivot (max(name) for HierarchyLevel in ([1],[2],[3],[4])) as pvt
qu'est-ce que je fais mal?
peut vous aider si vous nous avez montré les données que vous avez commencées. – DForck42