我原来遇到一个递归运算的问题,已经解决了。请见:http://community.csdn.net/Expert/topic/4199/4199860.xml?temp=.5139582但是现在遇到了和这个类似,但是比这个复杂的问题。就是在递归求和汇总的时候还要考虑乘法运算。也就是每个节点都有一个倍数数字:地区 人数 隶属于 倍数中国 3 null 1
北京 4 中国 2
四川 3 中国 3
昌平 7 北京 4
顺义 12 北京 5
绵阳 20 四川 6
成都 11 四川 7
成都 11 北京 8
郫县 7 成都 9
郫县 7 成都 9比如郫县的倍数数字是2,那么 计算隶属于北京的成都的人口时,这样算:7 * 9 + 11 =74而如果计算四川省人口时:(7*9+11)*7 + 20 * 6最后也是希望通过递归运算输出每个城市的人口数。
高手帮忙。谢谢!
北京 4 中国 2
四川 3 中国 3
昌平 7 北京 4
顺义 12 北京 5
绵阳 20 四川 6
成都 11 四川 7
成都 11 北京 8
郫县 7 成都 9
郫县 7 成都 9比如郫县的倍数数字是2,那么 计算隶属于北京的成都的人口时,这样算:7 * 9 + 11 =74而如果计算四川省人口时:(7*9+11)*7 + 20 * 6最后也是希望通过递归运算输出每个城市的人口数。
高手帮忙。谢谢!
解决方案 »
- 查询语句的一个start with 的问题
- oracle有类似sqlserver的侦探器的工具吗?
- 导入导出数据时出现这个问题,请高手指导
- 请教复杂的SQL语句???谢谢
- 菜鸟提问关于复合主键
- 请问各位高手怎么把如下这个SQL改为一个select语句
- 请教一个创建数据库的问题
- pctfree pctused的区别
- 请教,我单位有两个管理系统,后台为Oracel 7.3单机版数据库支持(急呀,谢谢)
- 在PL/SQL环境下,调试带有输出参数据的过程,请问该怎么调用?如何定义输出变量?
- 在oracle9i里,为什么long raw类型的属性字段,超过了4k就会出错????急!
- 问一下在proc程序中如何处理Clob对象,特别是针对宿主变量的声明。
要求相似。只是运算方法不一样。要考虑一个倍数。
select a.district,a.times,a.num ,a.subject,
(select sum(num*times)
from (select b.*,row_number() over(partition by district,subject order by subject) rn from test b) c
where rn = 1
start with a.district = c.district
and nvl(a.subject,0) = nvl(c.subject,0)
connect by prior district = subject)-
(select distinct num*times-num from test where district=a.district and subject=a.subject )
from test a
看一下有没有bug :)SQL> create or replace function f_demo(varea varchar2) return number
2 as
3 cursor c(v_area varchar2) is select distinct * from tt where 隶属于=v_area;
4 v_num number:=0;
5 begin
6 for cur in c(varea) loop
7 v_num:=v_num+ (f_demo(cur.地区)+cur.人数)*cur.倍数;
8 end loop;
9 return v_num;
10 end f_demo;
11 /函数已创建。已用时间: 00: 00: 00.10
SQL> select * from tt;地区 人数 隶属于 倍数
---------- ---------- ---------- ----------
中国 3 1
北京 4 中国 2
四川 3 中国 3
昌平 7 北京 4
顺义 12 北京 5
绵阳 20 四川 6
成都 11 四川 7
成都 11 北京 8
郫县 7 成都 9
郫县 7 成都 9已选择10行。已用时间: 00: 00: 00.80
SQL> select 地区,f_demo(地区)+人数 from tt;地区 F_DEMO(地区)+人数
---------- -----------------
中国 3294
北京 684
四川 641
昌平 7
顺义 12
绵阳 20
成都 74
成都 74
郫县 7
郫县 7已选择10行。已用时间: 00: 00: 00.01
SQL>
http://community.csdn.net/Expert/topic/4204/4204552.xml?temp=.9830133我一开始就开了两个帖。
和
gongzip
到这个帖子上留一下言可以吗?
http://community.csdn.net/Expert/topic/4204/4204552.xml?temp=9.774417E-02我好放分结帖