表
ID SU FANWEI
1 2 1
1 2 2
1 5 3
1 5 4
1 6 5
1 4 6
2 5 1 要求求ID为1的记录的,FANWEI在1-3和4-6的SU和,
输出结果为
ID SU(1-3) SU(4-6)
1 9 15用一个查询语句实现。
ID SU FANWEI
1 2 1
1 2 2
1 5 3
1 5 4
1 6 5
1 4 6
2 5 1 要求求ID为1的记录的,FANWEI在1-3和4-6的SU和,
输出结果为
ID SU(1-3) SU(4-6)
1 9 15用一个查询语句实现。
解决方案 »
- Oracle把记录导出成文件
- imp DMP文件出错,有赏求救
- 上亿条记录,数据文件居然达到了40个G这样正常吗?如何优化呢?
- 十里开源最新决策『十里开源__http://www.opensource.com.cn』
- 普通PC机器可否让ORACLE数据库带得起25个用户的连接?
- 100分求解CURSOR的问题.[有答案马上结贴]
- 郁闷了一周了,写了一个存储过程返回了几个FLOAT类型的值.可是BCB里调用的时候总是说"数字溢出"。麻烦大家想想办法。
- 一个简单的uptate在Oracle中如何实现?
- Oracle8的简单问题。
- Grid Infrastructure只能借助图形界面来安装吗
- oracle导出文本文件问题!
- 怎么在ORACLE FORMS中限制某字段记录的重复?
sum(
case
when FANWEI <=3 then su
else 0
end
) "su(1-3)",
sum(
case
when FANWEI >3 then su
else 0
end
) "su(4-6)"
from 表
where id=1
group by id
明显错误,既然有了sum ,前面还有个ID,怎么会没有group by
SUM(DECODE(FANWEI, 1, SU, 2, SU, 3, SU, 0)) AS "SU(1-3)",
SUM(DECODE(FANWEI, 4, SU, 5, SU, 6, SU, 0)) AS "SU(4-6)"
FROM TEST
WHERE ID = 1
GROUP BY ID
正解。我给偷下懒
select 1,
sum(
case
when FANWEI <4 then su
else 0
end
) "su(1-3)",
sum(
case
when FANWEI >3 then su
else 0
end
) "su(4-6)"
from 表
where id=1