我有两个包含员工姓名(TableB)和员工层次结构(TableA)的表(来自TableA的manager_id可以是同一表中的employee_id。]
TableA
UniqueId Employee_ID Manager_ID
1 101 102
2 102 103
3 103 104
4 105 106
5 106 null
TableB
Employee_ID Employee_Name
101 First
102 Second
103 Third
104 Fourth
105 Fifth
106 Sixth
并且我需要如下输出:
Employee_ID Employee_Name Transferred
101 First True
102 Second True
103 Third True
105 Fifth False
106 Sixth False
每个雇员的已转移列的计算公式为=
isTransferred(Employee_ID)
{
If(Manager_ID is null) return false;
If(Manager_ID is present as employee_id in table A)
{
return isTransferred(manager_ID)
}
else
{
return true;
}
}
有没有办法在一个select语句中获得结果?
看起来您正在寻找join
和case
select employee_id,
employee_name,
case when a.manager_id=b.employee_id or a.manager is null then 'True' else 'False' end as transferred
from table_a
inner join table_b on a.employee_id=b.employee_id;