Я пытаюсь создать запрос к очень простой таблице (организации)
У меня есть столбцы
Organisation, Manager, Superior_Organisation
CEO
Leadership Team, David, CEO
Production Management, Alex, Leadership Team
Production Site 1, Francoise, Production Management
Production Site 2, Steve, Production Management
Production Site 1 Maintenance, Alan, Production Site 1
....
Из-зана другом уровне, я не знаю, как создать запрос, который предоставляет мне все вышестоящие организации, начиная с одного определенного уровня
Я попробовал этот код
declare @i int
select @i = 0
-- keep going until no more rows added
while @@rowcount > 0
begin
select @i = @i + 1
-- Get all children of previous level
SELECT organisations.Organisation, organisations.Manager,
organisations.Superior_Organisation
FROM organisations
end
Но с этим запросомЯ получаю все, и я не знаю, как я могу запросить только вышестоящие организации, например, для обслуживания сайта производства 1.(может быть от 1 до 5)
Одним из способов может быть соединение таблицы, но я думаю, что это далеко от производительности.
Я видел несколько рекурсивных запросов CTE,но я не знаком.Так что оцените помощь.