Ich kämpfe mit einem Sortierproblem.MS ACCESS - Hierarchische Baumsortierung
Ich habe eine Tabelle, die wie folgt ist:
aspect_id (int)
aspect_text (memo)
root_id (int) which has as a foreign key a aspect_id
I eine nicht zyklische Struktur mit den folgenden Dummy-Daten habe:
aspect_id aspect_text root_id
1 root null
2 aspect1 1
3 aspect2 1
4 aspect3 2
5 aspect5 4
Im Beispiel der Daten sortieren richtig, in meiner Datenbank nicht. Ich möchte sortieren, dass es am Wurzelelement beginnt, dann ein Kind findet, dieses Kind ausgibt und das rekursiv tut.
Mit CTE ist es ziemlich machbar. Access unterstützt dies nicht. Mit CTE wäre es so etwas wie:
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;
Kann mir jemand helfen?
Was dooes das Akronym CTE bedeutet? –
CTE = allgemeiner Tabellenausdruck, Teil des SQL-99-Standards und eingeführt in SQL Server 2005. Siehe MSDN 'Verwenden allgemeiner Tabellenausdrücke' (http://msdn.microsoft.com/en-us/library/ms190766.aspx) . – onedaywhen
Welche Version von Access verwenden Sie? Access 2010 verfügt über einen neuen Feldtyp zum Behandeln von hierarchischen Daten. –