Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
Solved

# recursive query

Posted on 2011-03-09
Medium Priority
219 Views
How does one write a recursive query?  This would come into play where a table is self-referencing.   Like, a list of employees, where there is a primary Key and supervisor column, where the latter maps to the primary key.   So, If I want a list of employees everyone from person "X" on down, how do I do this?
0
Question by:HLRosenberger
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 2

LVL 32

Expert Comment

ID: 35087033

You can use a recursive Common Table Expression (CTE) to do this kind of query
0

LVL 32

Accepted Solution

Ephraim Wangoya earned 2000 total points
ID: 35087074
here is an example

ID Parent
1  null
2  1
3  1
4  null
5  4
6  5

with CTE(ID, PARENT)
AS
(
SELECT F.ID, F.PARENT
FROM TABLE1 F
WHERE PARENT IS NULL
UNION ALL
SELECT F.ID, F.PARENT
FROM TABLE1 F
INNER JOIN CTE FH ON FH.ID = F.PARENT
)

SELECT ID, PARENT FROM CTE
0

LVL 9

Expert Comment

ID: 35087209
I believe you are looking to make a tree for employee:
See example below:
ID: Emp ID
Name: Emp Name
Manager: Emp. Manager ID (NULL: Emp. have no manager)

ID      Name      Manager
1      a      NULL
2      b      1
3      c      1
4      X      2
5      Y      2
6      Z      1
7      P      3

``````WITH Employee_Tree (ID,
Name,
Manager,
Depth) AS(
SELECT  ID,
Name,
Manager,
1 AS depth
FROM Employee WITH (NOLOCK)
WHERE MANAGER IS NULL
UNION ALL
SELECT  N.ID,
N.Name,
N.Manager,
ET.Depth + 1
FROM Employee AS N WITH (NOLOCK)
INNER JOIN Employee_Tree ET
ON ET.ID = N.Manager)
SELECT ID,
Name,
Manager,
FROM Employee_Tree
``````
0

LVL 1

Author Closing Comment

ID: 35124508
Thanks!
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In part one, we reviewed the prerequisites required for installing SQL Server vNext. In this part we will explore how to install Microsoft's SQL Server on Ubuntu 16.04.
What if you have to shut down the entire Citrix infrastructure for hardware maintenance, software upgrades or "the unknown"? I developed this plan for "the unknown" and hope that it helps you as well. This article explains how to properly shut down …
Using examples as well as descriptions, and references to Books Online, show the documentation available for date manipulation functions and by using a select few of these functions, show how date based data can be manipulated with these functions.
Via a live example, show how to extract insert data into a SQL Server database table using the Import/Export option and Bulk Insert.
###### Suggested Courses
Course of the Month6 days, 9 hours left to enroll