我正在尝试在Access中编写一个SQL查询,它将返回线性网络中项目/人员的相对位置。
例如,如果我们有一个表格,其中包含有关员工的数据,包括他们的第一个直线经理。
| Employee | Employee ID | Manager | Manager ID |
--------------------------------------------------
| John | 123 | Craig | 321 |
| Craig | 321 | Claire | 874 |
| Claire | 874 | Ben | 366 |
我可以通过做这样的事情找到一个员工第二,第三......直线经理
SELECT t1.Employee, t1.Manager, T2.[Manager] AS [2ndManager], t3.[Manager] As [3rdManager]
FROM ((StaffTable t1
LEFT JOIN StaffTable t2 ON t1.[Manager ID] = t2.[Employee ID])
LEFT JOIN StaffTable t3 ON t2.[Manager ID] = t2.[Employee ID])
在上面的例子中,t1.Employee可以指某位已经是二线或三线经理的人。我不确定如何获得个人排名,例如它们下面的等级数(节点高度)
有人可以建议如何最好地解决这个问题吗?