员工与经理

时间:2019-11-01 15:54:16

标签: sql sql-server tsql

我有以下数据:EMPID, NAME, MANAGER_ID

Like this

我需要返回:EMPID, NAME, COLLEAGUE_ID

COLLEAGUE_ID将是与EMP_ID中的人具有相同管理者的人的列表。

Like this

任何帮助都会很棒。即使只是函数类型的名称,我也需要完成此操作。

1 个答案:

答案 0 :(得分:1)

听起来基本上像cross join。但是由于您的表中未包含经理,因此您还需要union all

select t1.emp_id, t1.name, t2.emp_id as colleague
from t t1 join
     t t2
     on t1.manager = t2.manager and t1.emp_id <> t2.emp_id
union all
select t1.emp_id, t1.name, t1.manager
from t;