Ich versuche, mithilfe von HierarchyID einen Weg zu finden, um alle Ahnenknoten eines bestimmten Knotens abzurufen. Jede Lösung, die ich mit HierarchyID gesehen habe, scheint entweder einen CTE oder eine Variable zu verwenden. Gibt es eine Möglichkeit, dies mit einer einzelnen select-Anweisung zu tun?
Um die Dinge einfacher zu machen:
CREATE TABLE Employee
(
EmpId INT PRIMARY KEY IDENTITY,
EmpName VARCHAR(100) NOT NULL,
Position HierarchyID NOT NULL
)
INSERT INTO Employee (EmpName, Position)
VALUES ('CEO', '/'),
('COO', '/1/'),
('CIO', '/2/'),
('CFO', '/3/'),
('VP Financing', '/3/1/'),
('Accounts Receivable', '/3/1/1/'),
('Accountant 1', '/3/1/1/1/'),
('Accountant 2', '/3/1/1/2/'),
('Accountant 3', '/3/1/1/3/'),
('Accounts Payable', '/3/1/2/'),
('Accountant 4', '/3/1/2/1/'),
('Accountant 5', '/3/1/2/2/'),
('DBA', '/2/1/'),
('VP of Operations', '/1/1/')