首页 新闻 会员 周边 捐助

关于使用java对于树形结构逐层统计的问题,求助大佬

1
悬赏园豆:100 [待解决问题]

如上图所示,目前知道的就是最底层目录括号内的数量,需要进行向上统计累加,实现如图所示的效果,请大佬们帮帮忙

sceon的主页 sceon | 初学一级 | 园豆:34
提问于:2019-11-11 10:47
< >
分享
所有回答(1)
0

你这个可以用数据库进行直接统计,不知道你用的是那种数据库,如果是Oracle 那就简单了 有直接的函数可以使用,如果是mysql或者其他的 你得用函数进行统计 这样简单点。
java的话 也有实现的方式 就是代码量比较多

流年煮雪 | 园豆:219 (菜鸟二级) | 2019-11-11 10:57

是mysql 数据库,现在我需要查到最底层目录的数量是从另一张表中查询出来的,这样使用mysql的话是怎样实现的呢

支持(0) 反对(0) sceon | 园豆:34 (初学一级) | 2019-11-11 10:58

@sceon: 你写函数直接查啊,完了直接java程序直接掉这个函数就行了

支持(0) 反对(0) 流年煮雪 | 园豆:219 (菜鸟二级) | 2019-11-11 11:00

@流年煮雪: 已经查到了,就是需要再更新到一张表中,再进行向上累加

支持(0) 反对(0) sceon | 园豆:34 (初学一级) | 2019-11-11 11:01

@sceon: 建议你写自上而下的查询,通用性比较好。实在不会写 就写java代码吧。
int code="1";//部门code 查询这个部门下有多少人
list<code> list = sql 查询
for (){// 循环他
int tempCode=;
在查list 判断他有没有子集
if(true){
zai循环

}
}

你把其中重复的代码直接提出去 一直复用调
直到没有子集部门 然后查这个最后一个部门的人数,最后吧这个人数累积

支持(0) 反对(0) 流年煮雪 | 园豆:219 (菜鸟二级) | 2019-11-11 11:05

@sceon: 你现在已经知道了 每个部门的人数,这就简单了 ,不知道你有没有level 第几级这个字段 ,如果有,就先把最后一个级别的找,
level 有
最后一个级别的全查并根据父级code 进行group by 。这样不就查到了 这个父级部门有多少人么 sum()x下。
然后进行倒数第二级,直到父级code为空(或者你们定义的 -1 啊 什么的)

level 没有
那这个就麻烦了。需要对数据进行下处理。先得到level 然后在进行有level的操作。

支持(0) 反对(0) 流年煮雪 | 园豆:219 (菜鸟二级) | 2019-11-11 11:11

@流年煮雪:

支持(0) 反对(0) sceon | 园豆:34 (初学一级) | 2019-11-11 11:26

@sceon: 把你的两张表的数据 发送到bao1140913970@163.com
我给你看看

支持(0) 反对(0) 流年煮雪 | 园豆:219 (菜鸟二级) | 2019-11-11 11:30

@sceon: 写好了 给你发过去

支持(0) 反对(0) 流年煮雪 | 园豆:219 (菜鸟二级) | 2019-11-11 11:30

@流年煮雪: 发过去了

支持(0) 反对(0) sceon | 园豆:34 (初学一级) | 2019-11-11 11:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册