Je suis confronté à un problème de tri.MS ACCESS - Tri arborescent hiérarchique
J'ai une table qui est la suivante:
aspect_id (int)
aspect_text (memo)
root_id (int) which has as a foreign key a aspect_id
J'ai un arbre non cyclique avec les données fictives suivantes:
aspect_id aspect_text root_id
1 root null
2 aspect1 1
3 aspect2 1
4 aspect3 2
5 aspect5 4
Dans l'exemple les données sont triées correctement, dans ma base de données ce n'est pas. Je veux trier qu'il commence à l'élément racine, puis trouve un enfant, sortie de cet enfant et le fait de manière récursive.
Avec CTE, c'est assez faisable. L'accès ne supporte pas cela. Avec CTE ce serait quelque chose comme:
WITH aspectTree (aspect_id, root_id, Level#) AS
(
Select
aspect.aspect_id,
aspect.root_id,
0
FROM aspect
WHERE aspect.aspect_id = 44
UNION ALL
SELECT
aspect.aspect_id,
aspect.root_id,
T.Level# + 1
FROM aspect
INNER JOIN aspectTree AS T
On T.aspect_id = aspect.root_id
)
SELECT * FROM aspectTree;
Quelqu'un peut-il m'aider?
Quels dooes l'acronyme CTE signifie? –
CTE = expression de table commune, partie de la norme SQL-99 et introduite dans SQL Server 2005. Voir MSDN 'Using Common Table Expressions' (http://msdn.microsoft.com/fr-fr/library/ms190766.aspx) . – onedaywhen
Quelle version d'Access utilisez-vous? Access 2010 a un nouveau type de champ pour gérer les données hiérarchiques. –