当前位置: 代码迷 >> Oracle开发 >> 求1查询脚本,插入合计行(有标题),
  详细解决方案

求1查询脚本,插入合计行(有标题),

热度:90   发布时间:2016-04-24 06:26:49.0
求一查询脚本,插入合计行(有标题),急
表t1 类别表,数据如下
code,name
1,第一类
2,第二类
表t2 项目表
id,lbcode,xmname,money
1,1,A项目,5.00
2,1,B项目,15.00
3,2,C项目,10.00
4,2,D项目,20.00
如何得到以下结果

类别代码,类别名称(或项目名称),金额(或合计金额)
1,第一类,20。00
1,A项目,5.00
1,2,2,B项目,15.00
2,第二类,30.00
2,C项目,10.00
2,D项目,20.00
------解决思路----------------------
with tmp as
 (select t1.name, t2.* from t1, t2 where t1.code = t2.ibcode)
select ibcode, nvl(xmname, name), sum(money)
  from tmp t
 group by name, ibcode,rollup(xmname)
 order by ibcode,grouping(xmname) desc,xmname

------解决思路----------------------
报错了吗?还是结果不对?
我这运行是正常的啊。

引用:
order by 之后就出问题了

Quote: 引用:

with t1 as
(
select 1 code, '第一类' name from dual union all
select 2 code, '第二类' name from dual
)
,
t2 as
(

select 1 id, 1 lbcode, 'A项目' xmname, 5.00 money from dual union all
select 2 id, 1 lbcode, 'B项目' xmname, 15.00 money from dual union all
select 3 id, 2 lbcode, 'C项目' xmname, 10.00 money from dual union all
select 4 id, 2 lbcode, 'D项目' xmname, 20.00 money from dual
)
select code, name, money from (
select 0 id, a.code, a.name, sum(b.money) money from t1 a left join t2 b on a.code=b.lbcode group by a.code, a.name
union all
select * from t2
) aa
order by code, id, name
  相关解决方案