为使用SQL的员工确定/获取/查找管理链(层次结构)

时间:2016-09-08 05:07:11

标签: sql vba ms-access

我在公司的每个员工都有一张表(在MS Access DB中)。该表还有一列表示每位员工的经理。有一些列(没有数据)表明员工对CEO的完整管理链。我需要使用SQL(和/或VBA)确定/获取/查找和填充此数据。

我知道需要做些什么,但我在如何有效地完成这项工作方面做了一个完整的空白。

我知道我可以一行一行,但这似乎效率低下。必须有更好的方法。

例如,请参阅下表:

+------------+-----------+----------+----------+----------+
| employeeID | managerID | manager1 | manager2 | manager3 |
+------------+-----------+----------+----------+----------+
| a          |           |          |          |          |
| b          | a         |          |          |          |
| c          | a         |          |          |          |
| d          | a         |          |          |          |
| e          | b         |          |          |          |
| f          | b         |          |          |          |
| g          | c         |          |          |          |
| h          | c         |          |          |          |
| i          | d         |          |          |          |
| j          | e         |          |          |          |
| k          | f         |          |          |          |
| l          | g         |          |          |          |
+------------+-----------+----------+----------+----------+
  • a没有经理(CEO)
  • b的经理是a
  • l的经理g,其经理为c,其经理为a
  • 等...

所以这会产生表格:

+------------+-----------+----------+----------+----------+
| employeeID | managerID | manager1 | manager2 | manager3 |
+------------+-----------+----------+----------+----------+
| a          |           |          |          |          |
| b          | a         | a        |          |          |
| c          | a         | a        |          |          |
| d          | a         | a        |          |          |
| e          | b         | a        | b        |          |
| f          | b         | a        | b        |          |
| g          | c         | a        | c        |          |
| h          | c         | a        | c        |          |
| i          | d         | a        | d        |          |
| j          | e         | a        | b        | e        |
| k          | f         | a        | b        | f        |
| l          | g         | a        | c        | g        |
+------------+-----------+----------+----------+----------+

0 个答案:

没有答案