Challenge is with single column based on manager name I need to build
I need four sub levels..wheather it can be possible in Tableau or at Sql
level we need to do..?
First I need to know who reporting to manager Raj..
If I got 3 members...then I need to find who are reporting to these 3
members..then finally I need to create a hierarchy.
On Fri, Feb 9, 2018 at 12:12 PM Maneesh Gaddam <firstname.lastname@example.org>
In the single column, I think it isn't possible. On sql side, you should pivot those into the various levels you are looking for and then bring into Tableau to build hierarchy.
This is a late reply but I have done this before. Basically you need to recursively join to the same table one time per level of hierarchy. So, join manager id in original table to the employee id. Then get rid of all redundant columns and call the new employee id (results of the join) Mgr Level 1 , then do it again and call it Mgr level 2 etc. so you end up with 4 or 5 new columns with a level of mgr id. Then in Tableau you can build a hierarchy Mgr Level 5 , Mgr Level 4 etc.... I did this to secure the data shown by user . I wanted managers only see their own employees data. To this end I built a calculated field called "Is Manager" which checked if the current logged in user was part of the hierarchy and put it as a data source filter. This is much better as recursively joining data can be a performance hit unless you filter it right away. You can also do this type of hierarchy in SQL if you are logged into a database. If you want users to see data only in their own hierarchy by build a dynamic view like the below checking data against logged in user. (in Oracle).
I wrote a blog and did a webinar on some of this
Create or replace view My_Employee_Details as select e.employee_id, e.first_name, e.last_name, e.salary, m.Last_name manager_name
from HR.employees e, HR.employees m
where e.manager_id = m.employee_id
and upper(m.LAST_NAME) = user;