У меня есть таблица с именем EmployeeLevel
Id Position ShouldApproveLeave
1000 1 0
2000 2 1
3000 3 0
4000 4 0
Обратите внимание, что столбец bool ShouldApproveLeave
имеет значение true только для одной строки
У меня есть таблица Employee
со следующейструктура с LevelId
в качестве внешнего ключа для EmployeeLevel
Id ParentId Name LevelId
1000 NULL Jack 1000
2000 1000 John 2000
3000 2000 Nick 3000
4000 3000 James 4000
Мне нужен запрос для получения сведений о сотруднике, должности, а также менеджера, ответственного за утверждение его отпуска, как показано ниже
запрос (id = 4000)
Id Name LevelPosition LeaveApprovalLevel LeaveApprovingManager
4000 James 4 2 John
запрос (id = 3000)
Id Name LevelPosition LeaveApprovalLevel LeaveApprovingManager
3000 Nick 3 2 John
запрос (id = 2000)
Id Name LevelPosition LeaveApprovalLevel LeaveApprovingManager
2000 John 2 2 John
Также я хочу проверитьоставьте утверждающего менеджера только вверх в иерархии.
запрос (id = 1000)
Id Name LevelPosition LeaveApprovalLevel LeaveApprovingManager
1000 Jack 1 2 NULL
Я написал CTE для получения менеджера с установленным битом LeaveApproving. Получить работника с уровнем также просто. Моя задача - собрать все эти детали в одном ряду.
Таким образом, вопрос на самом деле в том, что я получил индивидуальные результаты для сотрудников и менеджера по выдаче разрешения. Как я могу получить это в одной строке?
Мне удалось получить отдельные запросы для следующих
сведений о сотруднике
Id ParentId Name Position
4000 3000 James 4
LeaveApprovalLevel details
Level
2
LeaveApprovingManager details
Id ParentId Name
2000 1000 John
Как я могу присоединиться к ним, чтобы яполучит это?
Id Name LevelPosition LeaveApprovalLevel LeaveApprovingManager
4000 James 4 2 John
Любые советы приветствуются.