Thursday, 1 August 2013

Tricky sql Query

GIVEN INPUT

Emp_Id     Emp_MgrId     Emp_Name
 1            NULL               A
 2             1                   B
 3             1                   C
 4             2                   D

EXPECTED OUTPUT

Emp_Name    Emp_MgrName
  A                     NULL
  B                        A
  C                        A
  D                        B

Solution:
Create table for query

CREATE TABLE TrickJoinQuery
(
Emp_Id INT IDENTITY(1,1) PRIMARY KEY,
Emp_MgrId INT,
Emp_Name VARCHAR(50)
)

Insert data into the table
INSERT INTO TrickJoinQuery VALUES( null,'A'),(1,'B'),(2,'C'),(3,'D')


and query is:

SELECT E.Emp_Name ,EM.Emp_Name[mgr] FROM TrickJoinQuery E
LEFT OUTER JOIN  TrickJoinQuery EM ON EM.Emp_Id = E.Emp_MgrId



No comments:

Post a Comment