学生数量
XX学校 240
一系 120
06级 30
07级 30
08级 30
09级 30
二系 120
软件专业 80
06级 20
07级 20
08级 20
09级 20
硬件专业 40
06级 10
07级 10
08级 10
09级 10
如上例,父节点的值是子节点的值的汇总,从子节点开始一级一级往上汇总,直至根节点。树的层次不定,上面的树仅是一个简单的例子。我前几天设计了一个递归算法,但有问题,哪位大侠能帮我解决问题!谢谢

解决方案 »

  1.   

    先计算好最底层的数值,然后可以通过sql语句的条件语句进行批量更新
    sql server中是case
    access中是dsum
    具体可以查查帮助,不难理解
      

  2.   

    我觉得实现这个应该建立一张表好一些,在表中计算好了字段值,然后在delphi中就直接读取这个表到treeivew就好拉。
      

  3.   

     都差不多,一段PHP代码,自己看看吧
     function getAllChildTypeArray($parentId){
         $handle = db_connect();
     $ptid_array=array();
     $ptid_array[]=$parentId; //求子树结点
     $result=$handle->query('select * from '.TABLE_PRO_TYPE." where parent=$parentId ");
     while($row=$result->fetch_assoc()){  //有子结点,递归
          $ptid_array=array_merge(getAllChildTypeArray($row['id']),$ptid_array);
     }
     return $ptid_array;
      }当然,你这里要把改成 $ptid_array 改成2维数组(id-值),1维数组只有值也可以,然后求和就好了