Загрузка данных


CREATE PROCEDURE sp_Task49 AS BEGIN
    WITH SmithManagers AS (
        SELECT employee_id, manager_id, last_name, 1 AS lvl FROM employee WHERE last_name = 'SMITH'
        UNION ALL
        SELECT e.employee_id, e.manager_id, e.last_name, sm.lvl + 1 FROM employee e JOIN SmithManagers sm ON e.employee_id = sm.manager_id
    ), AdamsManagers AS (
        SELECT employee_id, manager_id, last_name, 1 AS lvl FROM employee WHERE last_name = 'ADAMS'
        UNION ALL
        SELECT e.employee_id, e.manager_id, e.last_name, am.lvl + 1 FROM employee e JOIN AdamsManagers am ON e.employee_id = am.manager_id
    )
    SELECT TOP 1 sm.last_name AS common_manager
    FROM SmithManagers sm
    JOIN AdamsManagers am ON sm.employee_id = am.employee_id
    ORDER BY sm.lvl ASC;
END;