ORACLE 9I PL/SQL环境下,表T中,字段A,字段B,字段C,若条件甲成立,对字段B求和,即sum(B),若条件乙成立,对字段C求和,即sum(C),现在要求sum(B)+sum(C)的值,并且group by A,只能用普通的sql语句,不能设变量,不能用“or”条件,,要求一次执行出来,执行完的显示结果应该是:字段A,sum(B)+sum(C)
具体的sql语句该如何写呢?
具体的sql语句该如何写呢?
解决方案 »
- 时间字段按年月分组 sql语句怎么写?
- 求一条关于分类统计的SQL语句
- oracle的extract()函数提取数据失败是怎么回事?
- sqlldr导入数据到多个表的问题
- oracle9i 如何导出导入库结构、表结构?能否通过SQL语句实现?
- 在存储过程中,怎么把一个字符串当成检索条件?
- 请问Oracle中的自定义函数可以返回一个表吗?
- 请教高手delphi+oracle
- 怎样写分页的sql语句?!(急)
- 怎样更改oracle中date的格式类型?不要在sqlplus里用alter session那种方法。
- 可以用循环的方式遍历Table类型的各列吗?
- 求救RHEL 4 下安装oracle 9i
select a,case when(条件甲成立) then sum(b) when(条件乙成立) then sum(c) else sum(b)+sum(c) end from t
group by a条件甲成立 sum(b)
条件乙成立 sum(c)
否则 sum(b)+sum(c)不知道有错不?
这样行不?
insert into test2 values('1',2,2);
insert into test2 values('2',1,1);
insert into test2 values('2',2,2);select cid,sum(case when cid='1' then cb else 0 end)+sum(case when cid='2' then cc else 0 end) sumbc
from test2
group by cid//输出结果
cid sumbc
1 3
2 3
from test2
group by cid
from T
group by a
写的不错sum(case when cid='1' then cb else 0 end)
这样也可以.
select 字段A,sum(decode(字段A,'1',字段B,0))+sum(decode(字段A,'2',字段C,0)) sumbc
from 表T
group by 字段A
再怎么样,你也不能挖坟问啊!case when 字段>'2005-1-1' then xxx else 0 end