У меня есть ситуация, когда мне нужно иметь возможность видеть, находится ли данный человек в иерархии пользователя/менеджера. У меня есть следующая структура таблицы: UserId UserName ManagerId
У меня есть 2 идентификатора: UserId (скажем, 5) и ManagerId (скажем, 2). В результате мне нужно знать, является ли менеджер с данным идентификатором (2) главным для пользователя с данным идентификатором (5)? Например, если
- Пользователь 1 подчиняется пользователю 2.
- Пользователь 3 подчиняется пользователю 1.
- Пользователь 4 отчитывается перед пользователем 3
результат SQL-запроса должен показать, что для UserId = 4 и ManagerId = 1 ответ верный.
Я только что создал запрос для получения всей иерархии:
WITH temp (level, UserName, UserId, ManagerId) AS
(
SELECT 1 AS level, EmployeeName, EmployeeId, BossId
FROM Employees
WHERE BossId IS NULL
UNION ALL
SELECT level+1 AS level, EmployeeName, EmployeeId, BossId
FROM Employees, temp
WHERE BossId = UserId
)
SELECT t.* from temp AS t
Но теперь я не знаю, как получить результат запроса с указанными выше условиями :(
Заранее благодарю за любую помощь!
IS_EXISTS? - person usr   schedule 03.02.2013