Labels

ASP.NET (1) Data Model (1) Django (1) MDX (15) Python (3) Redshift (3) SSAS (15) SSRS (3) T-SQL (29)

Sunday, 10 June 2012

SQL to get Hierarchial Relationship of Employees

Create a new table as below:

 CREATE TABLE [dbo]. [Employee](
         &nb sp;          [EmployeeID] [int] NOT NULL,
         &nb sp;          [EmpName] [varchar](100) NULL,
         &nb sp;           [Department] [varchar](100) NULL,
         &nb sp;           [Designation] [varchar](100) NULL,
         &nb sp;          [Salary] [money] NULL,
         &nb sp;          [ManagerID] [int] NULL
    ) ON [PRIMARY]


Insert valuse to the table:

SELECT L3.EmpName AS LEVEL2, L2.EmpName LEVEL1, L1.EmpName LEVEL0
    ,CAST(ISNULL (L3.EmployeeID,'') AS VARCHAR(5))+'/' + CAST(ISNULL (L2.EmployeeID,'') AS VARCHAR(5))+'/' + CAST(ISNULL (L1.EmployeeID,'') AS VARCHAR(5)) AS LEVELPATH
,CAST (ISNULL(L3.EmpName,'') AS VARCHAR(5))+'/' + CAST(ISNULL (L2.EmpName,'') AS VARCHAR(5))+'/' + CAST(ISNULL (L1.EmpName,'') AS VARCHAR(5)) AS EMPLOYETREE
FROM Employee L1
LEFT JOIN Employee L2 ON L1.ManagerID = L2.EmployeeID
LEFT JOIN Employee L3 ON L2.ManagerID = L3.EmployeeID
LEFT JOIN Employee L4 ON L3.ManagerID = L4.EmployeeID
LEFT JOIN Employee L5 ON L4.ManagerID = L5.EmployeeID


No comments:

Post a Comment