访问SQL - 获取线性结构中的级别

时间:2017-07-27 16:04:45

标签: sql ms-access

我正在尝试在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可以指某位已经是二线或三线经理的人。我不确定如何获得个人排名,例如它们下面的等级数(节点高度)

有人可以建议如何最好地解决这个问题吗?

0 个答案:

没有答案