select X1,X2,年度,金额 from
(select 大类,中心,大类 AS X1,中心 AS X2,1.0 AS PX,年度,金额, from TEST
union all
select 大类,中心,null,NULL,NULL,2.0 AS PX,sum(金额) from TEST group by 大类,中心
order by 大类,中心,PX) a
(select 大类,中心,大类 AS X1,中心 AS X2,1.0 AS PX,年度,金额, from TEST
union all
select 大类,中心,null,NULL,NULL,2.0 AS PX,sum(金额) from TEST group by 大类,中心
order by 大类,中心,PX) a
SQL> Select bigclass,center,nd, Sum(money)
2 From test
3 Group By bigclass,center,nd
4 Union
5 Select '合计' bigclass, center, '' nd , Sum(money)
6 From test
7 Group By center
8 Order By center ,nd
9 ;BIGCLASS CENTER ND SUM(MONEY)
-------------------- -------------------- -------------------- ----------
市场推广 北京 2004-1 200
市场推广 北京 2004-2 400
合计 北京 600
市场推广 上海 2004-1 100
合计 上海 100
市场推广 天津 2004-1 300
市场推广 天津 2004-2 500
合计 天津 8008 行 已选择SQL>
DECODE(grouping(bigclass), 1, '合计', center) ct,
SUM(money) my FROM HC_TT
GROUP BY rollup( bigclass,center, nd);BC CT MY
-------------------- -------------------- ----------
市场推广 北京 200
市场推广 北京 400
小计 北京 600
市场推广 上海 100
小计 上海 100
市场推广 天津 300
市场推广 天津 500
小计 天津 800
市场推广 1500
合计 1500
10 rows selected
不好意思,我不明白为啥多出来一行……:(