Составление T-SQL запроса по задаче, не могу понять, почему ошибка
Есть задача
В БД есть две таблицы: collaborators - таблица сотрудников. Поля: id, name (имя сотрудника), subdivision_id (id подразделения сотрудника), age (возраст). subdivisions - таблица подразделений. Поля: id, name, parent_id (id родительского подразделения)
Необходимо получить сотрудников всех нижестоящих подразделений от подразделения сотрудника “Сотрудник 1” с id 710253 у которых возраст менее 40 лет и длина имени более 11 символов. Также в результирующей таблице не должно оказаться подразделений с id 100055 и 100059. Отсортировать по возрастанию уровня вложенности подразделения.
В результирующем наборе должны быть следующие поля: id - id сотрудника name - Имя сотрудника sub_name - Наименование подразделения sub_id - id подразделения sub_level - Уровень вложенности подразделения относительно самого верхнего colls_count - Общее количество сотрудников в подразделении сотрудника (включая самого сотрудника).
Моё решение такое, но я не понимаю, почему в системе SSMS не запускается этот код, подскажите, пожалуйста, в чём ошибка
WITH RECURSIVE tree (id, name, subdivision_id, level) AS (
SELECT
dbo.subdivisions.id,
dbo.subdivisions.name,
dbo.collaborators.subdivision_id,
0
FROM
dbo.subdivisions
JOIN
dbo.collaborators ON dbo.subdivisions.id = dbo.collaborators.subdivision_id
WHERE
dbo.collaborators.name = 'Сотрудник 1' AND dbo.collaborators.id = 710253
UNION ALL
SELECT
tree.id,
tree.name,
tree.subdivision_id,
level + 1
FROM
tree
JOIN
dbo.subdivisions ON dbo.subdivisions.id = tree.subdivision_id
)
SELECT
dbo.collaborators.id,
dbo.collaborators.name,
tree.name sub_name,
dbo.subdivisions.id sub_id,
level colls_count
FROM
dbo.collaborators
JOIN
tree ON dbo.collaborators.subdivision_id = tree.id
JOIN
dbo.subdivisions ON dbo.collaborators.subdivision_id = dbo.subdivisions.id
WHERE
(dbo.collaborators.age < 40 AND LEN(dbo.collaborators.name) > 11)
AND tree.id NOT IN (100055, 100059)
ORDER BY
level;