Oracle在部门表上使用递归通过父部门的code查询所有子部门

该博客主要讲述了在Oracle中,通过递归的方式,依据父部门的code来查询其所有子部门的相关内容,涉及数据库的查询操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ORG_CODE RS GZ TJZJ LEADE_ID 60899000 80830000 80830500 80829500 80829000 30001 100 200 300 300 30002 101 201 301 300 30003 102 202 302 300 30004 103 203 303 300 30501 104 204 304 305 30502 105 205 305 305 30503 106 206 306 305 30512 107 207 307 305 29501 108 208 308 295 29504 109 209 309 295 29511 110 210 310 295 29012 111 211 311 290 29013 112 212 312 290 29005 113 213 313 290 在oracle数据库中,我现在有一张公司,其中部门编号、部门人数、工资、团建资金、小组的级关系,这几个字段(只有小组由有级关系,可根据部门编码中看出相对应的关系,如:技术部80830000,技术部下的小组a30001、小组b30002、小组c30003,可以根据其级id对应出部门编码中的‘80830000’中提取300这中间三位数,对应小组的级id),中的部门分为3个层级:公司、部门、小组,现在中只有第3层小组有数据,要求在该上统计每个部门的总人数和公司的总人数、每个部门的总工资和公司的总工资、每个部门的团建资金和公司总团建资金,其中60899000是公司编号,应该如何去写这段查询SQL语句,不使用cte递归,结果展示为:部门编号、总人数、总工资、总团建资金,要求最后统计的结果展示为:部门编码、总人数、总工资、总团建资金,其中部门编码中有:公司、部门、小组,原有的小组数据逐层汇总到部门、公司,我给的数据中不止一个部门,有好几个部门,不进行无数据部门节点排除,每个部门都有其下的小组,小组中都有数据。(层级关系有问题,公司编码是定死的跟部门编码无丝毫关联,只需要知道60899000是公司编码,需要汇总所有数据;部门编码是80827000,其下小组编码是27001,他们的关系是部门编码的270这三位和小组编码的前三位270,是以这样进行上下关系联系的;部门层级是提取‘80827000’中的‘270’、‘80827500’的‘275’,小组层级的是提取'27001'的前三位‘270’、‘27013’的‘270’、‘27501’的‘275’)
最新发布
04-01
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值