Something like this?CREATE TABLE #EMP (EmpID CHAR(1),
MgrID CHAR(1));
GO
INSERT INTO #EMP
VALUES
('A',NULL),
('B','A'),
('C','B'),
('D','C'),
('E',NULL),
('F','E'),
('G','F'),
('H','G');
GO
SELECT *
FROM #EMP;
GO
WITH Hierachy AS(
SELECT E.EmpID,
E.EmpID AS MgrID,
E.EmpID AS MstID,
1 AS HLevel
FROM #EMP E
WHERE E.MgrID IS NULL
UNION ALL
SELECT E.EmpID,
H.EmpID AS MgrID,
H.MstID,
H.Hlevel + 1 AS HLevel
FROM #EMP E
JOIN Hierachy H ON E.MgrID = H.EmpID
)
SELECT H.EmpID,
--H.MgrID,
H.MstID
FROM Hierachy H
ORDER BY H.EmpID;
GO
DROP TABLE #EMP
GO
Thom~
Excuse my typos and sometimes awful grammar. My fingers work faster than my brain does.
Larnu.uk