Я думаю, вам нужно сделать само присоединение дважды, чтобы получить желаемый результат.
Я создал запрос таким образом и получил вывод, который вы упомянули. Обратите внимание, что я не включил последнюю строку, которая имеет нулевое значение, и остальное так же, как это.
Запрос:
create table Employees (EmployeeID int, Name varchar(10), ManagerID int)
Insert into Employees values
(2, 'David' , 3 )
,(3, 'Roger' , NULL)
,(4, 'Marry' , 2 )
,(5, 'Joseph' , 2 )
,(7, 'Ben' , 2 )
select e.name as EmployeeName, e1.name ManagerName, e2.Name TopManager
from Employees e
left join Employees e1 on e.ManagerID = e1.employeeid
left join Employees e2 on e1.ManagerID = e2.EmployeeID
where e.ManagerID is not null and e1.ManagerID is not null
Где задано условие для ограничения имен менеджера в столбце Сотрудник.
Выход:
EmployeeName ManagerName TopManager
Marry David Roger
Joseph David Roger
Ben David Roger