Select 部门,办件类型,数量,应收金额,实收金额 from 
(Select 2 as id,A.部门,B.办件类型,C.数量,C.应收金额,D.实收金额
Union All
Select 1,A.部门,'',sum(C.数量),sum(C.应收金额),sum(D.实收金额) from 表 group by A.部门,''
Union All
Select 0,cast(count(distinct A.部门) as varchar(10)),'',cast(count(B.办件类型) as varchar(10)),sum(C.数量),sum(C.应收金额),sum(D.实收金额) from 表 group by 'ZZZ',''
)  aa
Order by id,部门,办件类型

解决方案 »

  1.   

    select 部门,办件类型,数量,应收金额,实收金额 from (
    select a.部门,'' 办件类型,cast(sum(C.数量) as varchar(10)) 数量,sum(C.应收金额) 应收金额,sum(D.实收金额) 实收金额,a.部门 flag1,0 flag2 from a,b,c,d where a..=b.....  group by a.部门
    union all
    select '' 部门,B.办件类型,cast(C.数量 as varchar(10)),cast(C.应收金额 as varchar(10)),cast(D.实收金额 as varchar(10)),a.部门 flag1,1 flag2 from a,b,c,d where a..=b.....
    union all
    select '此次统计,共包括 '+cast(count(distinct a.部门) as varchar(10))+' 个部门,','','共计收件 '+cast(sum(C.数量) as varchar(10))+' 件;','应收款项总额 '+cast(sum(C.应收金额) as varchar(10))+' 元,','实收款项总额 '+cast(sum(D.实收金额) as varchar(10))+' 元。','zzzzzzzzzzz' flag1,3 flag2 from a,b,c,d where a..=b.....
    ) tem order by flag2,flag1
      

  2.   

    非常感谢!可是可能是我的意思没有说明白,你们提供的好象还不能完成这个任务,加油呀!给个完整的sql,
      

  3.   

    to pengdali(大力 V3.0):
     select a.部门,'' 办件类型,cast(sum(C.数量) as varchar(10)) 数量,sum(C.应收金额) 应收金额,sum(D.实收金额) 实收金额,a.部门 flag1,0 flag2 from a,b,c,d where a..=b.....  group by a.部门
    这里a.部门 flag1,0 flag2 指的是什么??我看不懂呀??