比如说,有如下树形结构的数据:parent code value
-----------------------
1000 10
1000 1010 10
1010 1011 10
1010 1012 10现在想要得到如下的结果:parent code sum_value
-----------------------
1000 40
1000 1010 30
1010 1011 10
1010 1012 10也就是说,每个节点的sum_value都是它本身的value以及它的所有下级节点的value的和。比如:
1000的sum_value就是1000、1010、1011、1012的value值的合计,结果为40;
1010的sum_value就是1010、1011、1012的value值的合计,结果为30;
1011和1012是叶子节点,所以它们的sum_value就是它们自己的value的值,也就是10。请问这个能否用connect by实现?怎样实现?
如果用connect by无法实现,那么有什么好的方法呢?
select (select...connect by...)的方式虽然可以实现,但效率太低。
哪位高手给指点下,不胜感激!
-----------------------
1000 10
1000 1010 10
1010 1011 10
1010 1012 10现在想要得到如下的结果:parent code sum_value
-----------------------
1000 40
1000 1010 30
1010 1011 10
1010 1012 10也就是说,每个节点的sum_value都是它本身的value以及它的所有下级节点的value的和。比如:
1000的sum_value就是1000、1010、1011、1012的value值的合计,结果为40;
1010的sum_value就是1010、1011、1012的value值的合计,结果为30;
1011和1012是叶子节点,所以它们的sum_value就是它们自己的value的值,也就是10。请问这个能否用connect by实现?怎样实现?
如果用connect by无法实现,那么有什么好的方法呢?
select (select...connect by...)的方式虽然可以实现,但效率太低。
哪位高手给指点下,不胜感激!
解决方案 »
- 数据库恢复的问题
- 请问上传数据的具体步骤//写下代码,谢谢
- 求大神解释oracle执行计划!
- 再次请各位高手出手相救!!!
- 关于存储过程
- 更新分组出来的数据
- 关于ORACLE的两个问题
- SQL*PLUS里调用一个用PL/SQL写的函数的语法是怎样的?在PB中调用又是怎么样的?在线,谢谢!
- 菜鸟问题!如何把一个库里面的所有表和数据导出,到另外一台机器上,类似于复制的功能!在线等,解决马上给分
- 为什么我的表格中只能放613条记录
- database控件怎么用,ODBC或者ORACLE里有么,在哪,怎么添加,需要下载么?
- 10G可否停掉DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC???
SELECT b.parent, a.sumcode code, SUM(b.value) as "sum_value"
FROM (
SELECT parent, code, value, CONNECT_BY_ROOT code AS sumcode
FROM tt
CONNECT BY PRIOR code=parent) a
JOIN tt b
ON (a.sumcode=b.code)
GROUP BY b.parent, a.sumcode
ORDER BY a.sumcode;可能不符合楼主的要求,等待更好的方法。