有一个表结构如下:
员工ID        姓名    父ID
EmployeeId    Name    ParentEmpId
1             admin   NULL
2             wwn     1
3             hanxi   1
4             w1      2
5             w2      2
6             w3      3
7             h1      4
8             h2      4
9             h3      4
.......    这样可以构成一个树形的组织结构图:             admin
        wwn         hanxi
     w1,w2,w3     h1,h2,h3现想求任一节点在树形中的深度,想了很久没有想出来~        

解决方案 »

  1.   

    从节点的value即EmployeeId开始遍历数据库!!直到 ParentEmpId 为null   !!
    或者从节点找父节点直到 ParentEmpId 为null   !!
    把次数输出!!
      

  2.   

    我记得如果你把这个编到TreeView的话,TreeNode有一个属性是Level,就是该结点的深度
      

  3.   

    You might create a stored procedure to do the trick, likecreate procedure sp_getEmployeeLayer
      @employeeId int = null
    as
    begin
      declare @layer int
      Set @layer = 0  while @employeeId is not null
      begin
        set @employeeId = (select top(1) ParentEmpId from Employees where EmployeeId = @employeeId)
        set @layer = @layer + 1
      end  select @layer
    endexec getEmployeeLayer @employeeId = 5     --return 3