现在的位置: 首页 > 综合 > 正文

分组小计合计报表的SQL

2013年04月11日 ⁄ 综合 ⁄ 共 543字 ⁄ 字号 评论关闭

Table1结构如下:
OrgName,StaffName, PayArea,Pay
要生成如下形式报表:
Org1,A1,100,4
Org1,A2,100,4
Org1,A3,100,4
Org1小计,XX,XX,XX
Org2,B1,100,4
....
合计,      XX ,XX

SQL:
select  OrgName DD,STAFFNAME,PayArea, Pay,OrgName EE from Table1 t1
union
select OrgName || '小计' DD,'',sum(PayArea),sum(Pay),OrgName||'_' EE from  Table1  t2 group by DEPT_ID
union
Select '合计' DD,'',sum(PayArea),sum(Pay),'ZZZZZZZZ' EE from  Table1

order by ee

其中的OrgName||'_' 是为了取得一个比下一个不同的OraName大一些的值,以便让小计这条数据排在适当的位置,如Org1小计要排在Org1和Org2之间,所以要选一个在数据库中字符排序号小的字符,这里以"_"表示。   'ZZZZZZZZ'则是为了把合计记录排在最后,所以要选一串在数据库中字符排序最大的字符构成的串,这里只是用'Z'来表示。

抱歉!评论已关闭.