Удалить дубликаты от сотрудников Самостоятельное присоединение

У меня есть таблица сотрудников, где все сотрудники находятся. Мне нужно извлечь подмножество сотрудников с их соответствующим руководителем. Таблица выглядит примерно так:

Emp_id | F_name | L_name | Superv_id  | Superv_flg
---------------------------------------------------
123      john      doe      456          N
456      jane      doe      278          Y
234      Jack      smith    268          N

Мой запрос выглядит так:

with cte as 
(
    select f_name + ' ' l_name as supervisor, superv_id, emp_id
        from [dbo].[SAP_worker_all]
        where supvr_flag = 'Y'
    )
    SELECT distinct w.[first_name]
           ,w.[last_name]
           ,cte.supervisor
FROM [dbo].[SAP_worker_all] w
join  cte
        on w.[superv_id] = cte.[superv_id];

Я получаю повторяющиеся значения, и возвращенные супервизоры не верны. Что я сделал не так?

1 ответ

Решение

Если empID уникален, у вас не должно быть дубликатов

SELECT w.*, s.*
 FROM [SAP_worker_all] w 
 JOIN [SAP_worker_all] s 
   ON s.[Emp_id] = w.[Superv_id] 
  AND s.[Superv_flg] = 'Y'
Другие вопросы по тегам