就是类似于遍历一个文件夹下的所有文件夹跟文件的一个道理,只知道一个access数据库里有身份证和上级身份证等字段。 就是统计出每个上级拥有所有下级的人数跟自己所在的层数。我因为不是学计算机的,对所用什么算法不是很了解,但据说用二叉树或是结合递归什么的能实现!请高手帮忙了 

解决方案 »

  1.   

    比喻:数据库中的数据如下:
    code sjcode
    1      0
    2      1
    3      1
    4      2
    5      1
    6      3
    7      4
    8      1
    9      3
    10     8
    11     7
    12     1
    就着样排列下去,没什么规律,但是总存在上下级关系的。
      

  2.   

    select sjcode ,count(*) as 人数 from 表 group by sjcode
      

  3.   

    最好能把代码给贴出来!我们现在是讨论的技术问题,难道我们搞DNA克隆就一定去克隆人嘛?
      

  4.   

    再不明白我找了一个图,给大家看看!http://WWW.SDLBS.COM/number.jpg
      

  5.   

    我也明白你的意思了,可以先象你上面一样给每个人一个数字编号,然后
       
       找一个人的所有下级的人数:select count(*) as 人数 from 表 where sjcode='要找的数字编号'
       自己所在的层数:
                      
                      i,j:integer;
                      i:=自己的数字编号
                      j:=0;
                      while i<>0 do
                      begin
                          query.sql.text:='select sjcode from where code='自己的数字编号' ';                query.open; 
                          i:=query.fieldbyname('sjcode').value;         
                          j:=j+1;
                      end;
                      j即为自己所在的层数了
      

  6.   

    楼主,我作了个小程序执行结果如:http://www.sundyn.com/floor.jpg不知能否满足楼主要求?
      

  7.   

    做到这儿,可以结贴了。!给wizardqi(男巫)加分,能否把代码发到[email protected]邮箱?你是用树实现的,要是不用树,把树的节点变成一个临时表的数据就好了!可以用指针技术,递归算法实现一下!期待