I am having below data
Current Data
Emp id Emp Name Manger ID
100 Employee 101
101 Team Lead 102
102 Manager 103
103 Sr. Manager 104
104 Director 105
105 VP 0
Expected Data:
Emp id Emp Name Manger ID Manager Name
105 VP 0 Null
104 Director 105 VP
103 Sr. Manager 104 VP
102 Manager 103 VP
101 Team Lead 102 VP
100 Employee 101 VP
How can we achieve this ??
select c.*
from (select a.emp_id
,a.emp_name
,a.manager_id as manager_id
,b.emp_name as manager_name
from (select emp_id
,emp_name
,manager_id
from emp_test
WHERE manager_id <> 0) a
, --parent is present
(select emp_id
,emp_name
,manager_id
from emp_test) b --all records
where a.manager_id = b.emp_id
union all
select emp_id
,emp_name
,manager_id as manager_id
,'' as manager_name
from emp_test
WHERE manager_id = 0) c
ORDER BY 1 desc
,2 asc;
connect by prior/connect_by_rootto me: docs.oracle.com/cd/B19306_01/server.102/b14200/queries003.htm and docs.oracle.com/cd/B19306_01/server.102/b14200/…