我有ff。查询显示董事的层次结构下,任何人:逆转'With Recursive'语句
WITH RECURSIVE emptree AS (
SELECT e.win_id,
e.full_name,
e.current_sup_name,
e.sbu,
e.cost_center,
e.lob,
0 AS depth
FROM app_reports.vw_hiearchy e
WHERE e.win_id = xxxxxxx AND e.attrition_date IS NULL
UNION ALL
SELECT e.win_id,
e.full_name,
e.current_sup_name,
e.sbu,
e.cost_center,
e.lob,
t.depth + 1 AS depth
FROM app_reports.vw_hiearchy e
JOIN emptree t ON t.win_id = e.current_sup_win
WHERE e.attrition_date IS NULL
)
SELECT emptree.win_id,
emptree.full_name,
emptree.current_sup_name,
emptree.sbu,
emptree.cost_center,
emptree.lob,
emptree.depth
FROM emptree;
,直到我请求增加另一个列(或以上),以显示谁是一个特定的监督员(技术上添加列动态监事它工作正常 - 如果可能的话,那从下往上显示所有主管)。我不确定是否需要颠倒这一点,才能从底层开始实际获取层次结构,并将其显示为current_sup_name_2,current_sup_name3等等。但我不知道如何。
在此先感谢您的任何建议。 :)
你确实需要管理者的每一层单独的列,或将每个员工的完整层级的监督者放在一个单独的(逗号分隔?)字段中是否可以接受? –
这是可以接受的。 :),我可以用PHP安排它们 – Odinovsky