Search This Blog

Monday, January 10, 2011

Get min parent id or anciant id

--create table MenuItems(id int,parent_id int)

select *from menuitems
insert into menuitems values(1,null)

insert into menuitems values(2,null)
insert into menuitems values(3,2)
insert into menuitems values(4,3)
insert into menuitems values(5,4)
insert into menuitems values(6,3)
insert into menuitems values(7,6)
insert into menuitems values(8,7)
insert into menuitems values(9,5)
insert into menuitems values(10,1)
insert into menuitems values(11,10)
insert into menuitems values(12,11)
insert into menuitems values(13,12)
insert into menuitems values(14,13)

select *,dbo.getminparent(id) from menuitems
--select dbo.GetMinparent(12)
alter function GetMinparent(@id int)
returns int

begin
declare @pid int


set @pid=@id
while (@pid is not null)
begin

select @pid=parent_id from menuitems where id=@id
--print @pid
if(@pid is not null)
set @id=@pid



end

return @id
end