Solved

how to the hirarchial data using sql query.

Posted on 2010-09-20
7
577 Views
Last Modified: 2012-05-10
My table called employee contains the following data.
empid  empname jobname managerid
1        ravi   se       3

2        kumar  SSe      3

3        xyz    TeamLead 4

4        ppp    ProjectLead 5

5        MMM    Manager 6

6        ccc     CEo

7        ram     Fresher 2        
   




i need the output as follwors.

The input id mgrid.
 
i need the output in the hirarichael manner.
manager
projectlead
teamlead
sse
se
fresher
0
Comment
Question by:mu_ravi1
[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
  • Learn & ask questions
  • 3
  • 3
7 Comments
 
LVL 5

Expert Comment

by:Priya Perumpilavil
ID: 33722587
select * from table1 order by managerid desc

0
 

Author Comment

by:mu_ravi1
ID: 33723484
Hi Priya

i need to show the Hirarichal levels to top to bottom.
Above u have mentioned a simple query.
my thought of applying collase on the query to the level to level data in the output
0
 
LVL 70

Expert Comment

by:Éric Moreau
ID: 33723659
0
Microsoft Certification Exam 74-409

Veeam® is happy to provide the Microsoft community with a study guide prepared by MVP and MCT, Orin Thomas. This guide will take you through each of the exam objectives, helping you to prepare for and pass the examination.

 

Author Comment

by:mu_ravi1
ID: 33741043
Hi Emoreau,

Could please give me the code or qurey for my requirement.
it U do that it would be highly appreciable and it is a great help for me
Ravi
0
 
LVL 70

Accepted Solution

by:
Éric Moreau earned 250 total points
ID: 33743129
use this:

declare @employee table 
  ( 
      empid int  Primary key NOT NULL , 
      managerid int, 
      empname nvarchar(100), 
      jobname nvarchar(100)
   )

insert into @employee( empid, managerid, empname, jobname )

select 1, 3, 'ravi', 'se'
union
select 2, 3, 'kumar', 'SSe'
union
select 3, 4, 'xyz', 'TeamLead'
union
select 4, 5, 'ppp', 'ProjectLead'
union
select 5, 6, 'MMM', 'Manager'
union
select 6, null, 'ccc', 'CEo'
union
select 7, 2, 'ram', 'Fresher'



SELECT 'original data', * FROM @employee;

with RecursionCTE (empID,managerid, empname, jobname) 
 as
 (
   select empid,managerid,empname, jobname 
      from @employee
      where managerid is null
   union all
   select R1.empid,
          R1.managerid,
          R1.empname,
          R1.jobname
      from @employee as R1
     join RecursionCTE as R2 on R1.managerid = R2.empid
  )

select 'new data', * from RecursionCTE 

Open in new window

0
 

Author Closing Comment

by:mu_ravi1
ID: 33744626
Thanks for ur help and support
0
 
LVL 70

Expert Comment

by:Éric Moreau
ID: 33744667
A "B" grade for such a specific code!
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

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

Audit has been really one of the more interesting, most useful, yet difficult to maintain topics in the history of SQL Server. In earlier versions of SQL people had very few options for auditing in SQL Server. It typically meant using SQL Trace …
Long way back, we had to take help from third party tools in order to encrypt and decrypt data.  Gradually Microsoft understood the need for this feature and started to implement it by building functionality into SQL Server. Finally, with SQL 2008, …

752 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