Solved

recursive query

Posted on 2011-03-09
4
209 Views
Last Modified: 2012-05-11
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
Comment
Question by:HLRosenberger
  • 2
4 Comments
 
LVL 32

Expert Comment

by:ewangoya
ID: 35087033

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

Accepted Solution

by:
ewangoya earned 500 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

by:gdupadhyay
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

Open in new window

0
 
LVL 1

Author Closing Comment

by:HLRosenberger
ID: 35124508
Thanks!
0

Featured Post

Optimizing Cloud Backup for Low Bandwidth

With cloud storage prices going down a growing number of SMBs start to use it for backup storage. Unfortunately, business data volume rarely fits the average Internet speed. This article provides an overview of main Internet speed challenges and reveals backup best practices.

Question has a verified solution.

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

Suggested Solutions

For both online and offline retail, the cross-channel business is the most recent pattern in the B2C trade space.
This article shows gives you an overview on SQL Server 2016 row level security. You will also get to know the usages of row-level-security and how it works
Via a live example, show how to set up a backup for SQL Server using a Maintenance Plan and how to schedule the job into SQL Server Agent.
Viewers will learn how to use the SELECT statement in SQL and will be exposed to the many uses the SELECT statement has.

930 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now