现在有数据表sy_fy
bumen leixing payout_t
a aa 10
b bb 10
c cc 30要求显示结果为
bumen leixingaa leixingbb leixingcc 小计
a 10 0 0 10
b 10 0 10
c 0 0 30 30leixing这个字段是不确定的 通过其他条件查询出来的
bumen leixing payout_t
a aa 10
b bb 10
c cc 30要求显示结果为
bumen leixingaa leixingbb leixingcc 小计
a 10 0 0 10
b 10 0 10
c 0 0 30 30leixing这个字段是不确定的 通过其他条件查询出来的
解决方案 »
- oracle11g
- oracle 10g 触发器中时间相减问题
- Oracle 11g中的SQL developer 连接中的connection name填什么?
- RH Linux 下oracle自动备份设置无效
- 请教一个SQL查询语句写法。。
- ORA-01756 sql语句连结问题求助 急
- 问大家一个函数的问题
- 关于加密存储过程的问题,在线等==================================?
- ORACLE 数据插入的问题
- 帮我看一下,用exp数据库备份问题
- 跪求:当insert,update 含有特殊字符的时候,编码不对。
- 通过函数select到的列,如何做为where语句的条件?
SQL>
SQL> with t as(
2 select 'a' bumen,'aa' leixing,10 payout_t from dual union all
3 select 'b','bb',10 from dual union all
4 select 'c','cc',30 from dual)
5 select bumen
6 ,max(decode(leixing,'aa',payout_t,0)) leixingaa
7 ,max(decode(leixing,'bb',payout_t,0)) leixingbb
8 ,max(decode(leixing,'cc',payout_t,0)) leixingcc
9 ,sum(payout_t)
10 from t
11 group by bumen
12 /
BUMEN LEIXINGAA LEIXINGBB LEIXINGCC SUM(PAYOUT_T)
----- ---------- ---------- ---------- -------------
a 10 0 0 10
b 0 10 0 10
c 0 0 30 30
SQL> select bumen,
2 leixingaa,
3 leixingbb,
4 leixingcc,
5 leixingaa + leixingbb + leixingcc as 小计
6 from (select bumen,
7 decode(leixing, 'aa', payout_t, 0) as leixingaa,
8 decode(leixing, 'bb', payout_t, 0) as leixingbb,
9 decode(leixing, 'cc', payout_t, 0) as leixingcc
10 from sy_fy) t;
BUMEN LEIXINGAA LEIXINGBB LEIXINGCC 小计
-------------------- ---------- ---------- ---------- ----------
a 10 0 0 10
b 0 10 0 10
c 0 0 30 30
2、oracle列是有限制的,最大1000列。
要的是下面的数据,只要按照固定格式显示就可以了,比如这里的aa,bb,cc