Ich habe eine Tabelle mit dem Namen Department
mit 3 Spalten: DepartmentID
, DepartmentName
, ParentID
.ORDER BY Kind-Eltern-Hierarchie mit MS SQL Server gespeicherte Prozedur
Siehe SQL Fiddle für Details
ich die Ergebnisse von ParentID and Generation bestellen möchten. So:
╔═════════╦════════════════╦════════════╦════ ══════╗
║ KindID ║ Abteilungsname ║ Generierung ║ ParentID ║
╠═════════╬════════════════╬══ ══════════╬══════════╣
║ 1 ║ Manager ║ 0 ║ NULL ║
║ 6 ║ Verkauf ║ 1 ║ 1 ║
║ 7 ║ Flotte ║ 1 ║ 1 ║
║ 4 ║ Fracht ║ 2 ║ 7 ║
║ 5 ║ Transport ║ 2 ║ 7 ║
║ 2 ║ IT ║ 2 ║ 6 ║
║ 3 ║ Lebensmittel ║ 2 ║ 6 ║
╚═════════╩═════ ═══════════╩════════════╩══════════╝
Ich probierte verschiedene ORDER BY
s, aber keine funktionierte.
Meine gespeicherten Prozedur:
WITH Hierarchy(ChildId, DeparmentName, Generation, ParentID)
AS
(
SELECT DepartmentID, DeparmentName, 0, ParentID
FROM Departments AS FirtGeneration
WHERE ParentID IS NULL
UNION ALL
SELECT NextGeneration.DepartmentID, NextGeneration.DeparmentName, Parent.Generation + 1, Parent.ChildId
FROM Departments AS NextGeneration
INNER JOIN Hierarchy AS Parent ON NextGeneration.ParentID = Parent.ChildId
)
SELECT * FROM Hierarchy
OPTION(MAXRECURSION 32767)
Ich benutze MS SQL Server 2005
Der Code funktioniert nicht Lauf. Es gibt einige SQL-Syntaxfehler. – milo2011