oracle层次统计,oracle 层次树统计
统计部门的员工个数(员工个数=本部门人数+下级部门人数)部门表:员工表:sql 语句:with temp as(select t1.deptid as id, t1.supdeptid parent, num, level levs,t1.deptnamefrom dept t1left join (select deptid, count(t.deptid) numfrom emp tgroup
统计部门的员工个数(员工个数=本部门人数+下级部门人数)
部门表:

员工表:

sql 语句:
with temp as(
select t1.deptid as id, t1.supdeptid parent, num, level levs,t1.deptname
from dept t1
left join (select deptid, count(t.deptid) num
from emp t
group by t.deptid) t2 on t1.deptid = t2.deptid
start with t1.supdeptid is null
connect by prior t1.deptid = t1.supdeptid)
select lpad(' ', 4 * levs, ' ')||id as id,lpad(' ', 4 * levs, ' ')||deptname as deptname,
(select nvl(num, 0) from temp where id = t.id) +
(select nvl(sum(num), 0)
from temp
connect by parent = prior id
start with parent = t.id) cnt
from temp t
查询结果:

oracle10g sql语句:
select a.root as id, nvl(sum(b.num), 0) num
from (select id, fid, connect_by_root(id) root
from (select d.deptid as id, d.supdepid as fid from dept d start with d.supdepid is null
connect by prior d.deptid = d.supdepid)
connect by prior id = fid) a
left join (select deptid, count(t.deptid) num from emp t group by t.deptid) b on a.id =
b.deptid
group by root
order by root;
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)