sql server - Get all employees under manager with CTE -
i have table has employee details
empid managerid level value 1 0 5 ceo 2 1 4 emp 3 1 4 org 4 2 3 null 5 2 3 null 6 2 2 null 7 1 1 null 8 5 0 null now, have start wil employee id 2 , found it's low level hirerachy (i.e. 2, 4, 5, 6, 8) , assign them value same "2" (i.e. emp).
expected output :
empid managerid level value 1 0 5 ceo 2 1 4 emp 3 1 4 org 4 2 3 emp 5 2 3 emp 6 2 2 emp 7 1 1 null 8 5 0 emp what trying:
; levelhire ( select empid, managerid,level employeetable empid =2 union select lh.empid, rc.managerid, lh.level levelhire lh inner join [employeetable] rc on lh.empid= rc.empid ) select * levelhire option (maxrecursion 0) how can achieve same?
you can try this
;with employeetable ( select 1 empid,0 managerid , 5 level ,'ceo' value union select 2,1, 4,'emp' union select 3,1, 4,'org' union select 4,2, 3,null union select 5,2, 3,null union select 6,2, 2,null union select 7,1, 1,null union select 8,5, 0,null ),levelhire ( select empid, managerid,level,value employeetable empid = 2 union select rc.empid, rc.managerid, lh.level,lh.value levelhire lh inner join [employeetable] rc on lh.empid= rc.managerid ) select e.empid, e.managerid,e.level,isnull(e.value ,lh.value) value employeetable e left join levelhire lh on e.empid = lh.empid
Comments
Post a Comment