读书人

oracle sql 表的,该如何解决

发布时间: 2012-02-03 22:02:47 作者: rapoo

oracle sql 表的
在在做表 需要出的格式

id number name
1 10 i
2 20 i
3 30 i
'' 60 '小'
4 10 j
5 20 j
6 30 j
'' 60 '小'
'' 120 '合'

在做的方式是
select * from AA
union all
select '', sum(number),'小' from AA group by name
union all
select '',sum(number),'合' from AA

由於AA是一的查 用我方式的需要重3次 造成需要些大量的代
有什麽其他的法 代可以短些

[解决办法]

SQL code
SELECT * FROM AAUNION ALLselect '' ID,SUM(NUMBER),NAME from aaGROUP BY CUBE(NAME)
[解决办法]
rollup
[解决办法]
SQL code
With t As (  select 1 Id,10 numb, 'i' Name From dual Union All  select 2 Id,20 numb, 'i' Name From dual Union All  select 3 Id,30 numb, 'i' Name From dual Union All  select 4 Id,10 numb, 'j' Name From dual Union All  select 5 Id,20 numb, 'j' Name From dual Union All  select 6 Id,30 numb, 'j' Name From dual)SELECT id, SUM(numb) numb, decode(grouping_id(id, NAME), 3, '合计', 2, '小', NAME) NAME  FROM t GROUP BY ROLLUP(NAME, Id) 

读书人网 >oracle

热点推荐