分組小計合計報表的SQL


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


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com