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'来表示。