Skip Navigation Links



Parent Child Relationship on self table in sqlserver

Author : Kalpesh Satasiya      Blog :Software Development - Developer | Web Designer Ahmedabad India      Date: 11/18/2011 10:11:00 AM


CREATE TABLE dbo.Emp
(
EmpID int PRIMARY KEY,
EmpName varchar(30),
MgrID int FOREIGN KEY REFERENCES Emp(EmpID)
)
GO

Insert few record into table

INSERT dbo.Emp SELECT 1, 'President', NULL
INSERT dbo.Emp SELECT 2, 'Vice President', 1
INSERT dbo.Emp SELECT 3, 'CEO', 2
INSERT dbo.Emp SELECT 4, 'CTO', 2
INSERT dbo.Emp SELECT 5, 'Group Project Manager', 4
INSERT dbo.Emp SELECT 6, 'Project Manager 1', 5
INSERT dbo.Emp SELECT 7, 'Project Manager 2', 5
INSERT dbo.Emp SELECT 8, 'Team Leader 1', 6
INSERT dbo.Emp SELECT 9, 'Software Engineer 1', 8
INSERT dbo.Emp SELECT 10, 'Software Engineer 2', 8
INSERT dbo.Emp SELECT 11, 'Test Lead 1', 6
INSERT dbo.Emp SELECT 12, 'Tester 1', 11
INSERT dbo.Emp SELECT 13, 'Tester 2', 11
INSERT dbo.Emp SELECT 14, 'Team Leader 2', 7
INSERT dbo.Emp SELECT 15, 'Software Engineer 3', 14
INSERT dbo.Emp SELECT 16, 'Software Engineer 4', 14
INSERT dbo.Emp SELECT 17, 'Test Lead 2', 7
INSERT dbo.Emp SELECT 18, 'Tester 3', 17
INSERT dbo.Emp SELECT 19, 'Tester 4', 17
INSERT dbo.Emp SELECT 20, 'Tester 5', 17
GO


Create sql function


create FUNCTION [dbo].[ShowHierarchy]
(
@Root bigint
)
RETURNS
@menutable TABLE(EmpName varchar(max),MgrID int,EmpID int)
AS
BEGIN


DECLARE @EmpID int, @EmpName varchar(30),@MgrID int, @rootid bigint


set @rootid =@Root
SELECT @EmpID=EmpID,@EmpName=EmpName,@MgrID=MgrID FROM dbo.Emp WHERE EmpID = @Root

-- SET @EmpName = (SELECT EmpName FROM dbo.Emp WHERE EmpID = @Root)
if(@EmpName is not null)
begin
insert into @menutable select REPLICATE(' ', @@NESTLEVEL * 4) + @EmpName,@MgrID,@EmpID
end

SET @EmpID = (SELECT MIN(EmpID) FROM dbo.Emp WHERE MgrID = @Root)

WHILE @EmpID IS NOT NULL
BEGIN
insert into @menutable select * from dbo.ShowHierarchy(@EmpID)
SET @EmpID = (SELECT MIN(EmpID) FROM dbo.Emp WHERE MgrID = @rootid AND EmpID > @EmpID)
END
return
END


//call this function from where you want
Select * from dbo.ShowHierarchy(0)


Bloggers

active bloggers in the last 24 hrs. Number shown in the bracket represents number of posts published in past 24 hrs,


other authors(65)

Vikram Karve(4)

BUTTERFLIES OF TIME(3)

bobbysing(2)

Fidarose Isha(2)

N.GURURAJ.(2)

R.D. Bhalekar(2)

Sakshi Garg(2)

Venkataramanan Ramasethu(2)

AbhiLaSH RuHeLa(1)

Abhishek Pandey(1)

Abi(1)

Aditi(1)

Ajay Shah(1)

Akhilesh(1)

Anil(1)

Anil P(1)

Ankur(1)

anouradha bakshi(1)

Anu Lal(1)

Anu Varma(1)

Anubhav Sharma(1)

anupriya(1)

AS...(1)

ashok(1)

bdoza(1)

Bharathy(1)

celestialrays(1)

chandrashekhara(1)

chaoticplanner(1)

Dew(1)

Dinakarr(1)

Ekta khetan(1)

ephemeral desires(1)

Familycook(1)

Govind Kumar(1)

Hari Chandana P(1)

Harimohan(1)

harish p i(1)

I for an Eye(1)

Insignia(1)

IS(1)

J.A. Kumar(1)

Jayasri Ravi(1)

Joshua S(1)

Ka Jo(1)

KALVA(1)

Kalyan P(1)

KK(1)

KParthasarathi(1)

Madhaw Tiwari(1)

Mahima Kohli(1)

Maitreyee Bhattacharjee Chowdhury(1)

Meher(1)

Mihir Govilkar(1)

Mr Rancorous(1)

MUNZ TDT(1)

Mythreyi(1)

Nanka(1)

Nayna Kanabar(1)

Newsline Features and Press Agency, Agra - 282005 [U.P.](1)

Nidz(1)

Nik P(1)

Nikhil Sheth(1)

Nishant Chaturvedi(1)

Nivedita Thadani(1)

Nona(1)

Ordinary Gal(1)

palash ranjan khound(1)

parth joshi(1)

Phalgunn Maharishi(1)

pinksocks(1)

pixie(1)

Prabal(1)

Prahallad Panda(1)

Priya(1)

rahul(1)

Raksha(1)

Rama Subramanian(1)

Ramanujam Sridhar(1)

ravi dabas(1)

Reshmi Mahesh(1)

Richa Singh(1)

Ritcha(1)

Rohit Kaveeshwar(1)

RWABhagidari.blogspot.com(1)

Sandhya(1)

Sanjeev(1)

Santosh Bangar(1)

ScottGu(1)

Sharjeel(1)

shibu V(1)

Shinymist(1)

Shobhaa De(1)

shoOOonya(1)

Shrikant Lokhande(1)

Shriti(1)

Sriram Khé(1)

Srivalli(1)

Subha(1)

Suchismita(1)

Sushma Harish(1)

tikulicious(1)

Vashi Chandiramani(1)

Vasudev Ram(1)

Vasudha Rao(1)

Vatsala Dorai Rajan(1)

Vijay Rajput(1)

winnie(1)

अफ़लातून अफ़लू(1)

மதி (GS)(1)


garland of Languages of India
an amalgamation of the diversified traditions
gracefully presented with novelty
http://www.haaram.com