oracle9i数据库,通过pl/sql操作,现有一表WW,有K,a,b,c,d五个字段,3000到4000左右条记录,欲求甲,乙2个结果,要对所有记录执行如下操作:
如果K=1,
一:若(a-b)-c>=0,甲=b,乙=c;
二:若(a-b)-c <0,甲=b,乙=a-b;
如果K=0,
一:若(a-b)-d>=0,甲=b+d,乙=0;
二:若(a-b)-d <0,甲=a,乙=0; 最后,对甲和乙的结果分别累加,输出甲和乙的结果,如果现在还想求sum(a)的值呢??sum(a)只要直接求就可以了不要加这些判断条件,
也就是说,输出的结果是sum(甲),sum(乙),sum(a),恳求具体的SQL语句,不胜感激!!
如果K=1,
一:若(a-b)-c>=0,甲=b,乙=c;
二:若(a-b)-c <0,甲=b,乙=a-b;
如果K=0,
一:若(a-b)-d>=0,甲=b+d,乙=0;
二:若(a-b)-d <0,甲=a,乙=0; 最后,对甲和乙的结果分别累加,输出甲和乙的结果,如果现在还想求sum(a)的值呢??sum(a)只要直接求就可以了不要加这些判断条件,
也就是说,输出的结果是sum(甲),sum(乙),sum(a),恳求具体的SQL语句,不胜感激!!
解决方案 »
- 请教一个联合查询思路和效率的问题
- 在shell中如何写读文件,然后把文件中的内容存入ORACLE数据库中,需求详见如下:
- 执行SQL报ORA-03113: end-of-file on communication channel错误,各位大侠,请帮忙看看!
- 如何excel或文本类型数据导入到Oracle中
- 存储过程执行问题
- SQL 2000 与ORACLE 能否在同一台机器上运行
- 高分请教:Oracle的存储过程可用JAVA写吗?
- 请问:在Oracle的SQLPlus Worksheet中,执行某个函数或存储过程的语句应该怎么写?
- 把一条数据写成两条、各位大神求帮助
- 创建包体的时候报错PLS-00103,请教大家应该怎么处理
- oracle安装问题
- oracle基础问题
select sum(甲) , sum(乙) 乙,su
from (select case
when k = 1 then
b
when (k = 0 and a - b - d > 0) then
b + d
when (k = 0 and a - b - d < 0) then
a
end 甲 ,
case
when k = 0 then
0
when (k = 1 and a - b - c > 0) then
c
when (k = 1 and a - b - c < 0) then
a - b
end 乙,sum(a) su
from ww)
from (select case
when k = 1 then
b
when (k = 0 and a - b - d > 0) then
b + d
when (k = 0 and a - b - d < 0) then
a
end 甲 ,
case
when k = 0 then
0
when (k = 1 and a - b - c > 0) then
c
when (k = 1 and a - b - c < 0) then
a - b
end 乙,sum(a) su
from ww)这么做反复提示"not a single-group group function",如果不求sum(a),只求sum(甲),sum(乙),语句没问题,
不知道问题到底出在哪??
sum(a) 用到外层
里层就吧 a SELECT 出来就是了select sum(甲) , sum(乙) 乙,sum(a)
from (select case
when k = 1 then
b
when (k = 0 and a - b - d > 0) then
b + d
when (k = 0 and a - b - d < 0) then
a
end 甲 ,
case
when k = 0 then
0
when (k = 1 and a - b - c > 0) then
c
when (k = 1 and a - b - c < 0) then
a - b
end 乙,a
from ww)
保留原来的查询结果不变,还要增加YY.m=WW.m时表YY中n字段的查询结果,也就是说,最终的查询
结果输出的应该是:YY.n,sum(甲),sum(乙),sum(a),求具体的SQL语句,
问题越来越复杂了,实在不好意思