sql表合并,统计计算,生成总计

根据sql表中内容生成统计结果数据,以插入grid中显示
 
显示效果如下:
 
 
 
 1 select ROW_NUMBER () over (order by prebmbm ) as RowNumber,
 2 prebmbm,convert (varchar, cast(ynum *1.0/ TotalNum*100 as dec (10, 2)))+'%' as queren,
 3 convert(varchar ,cast( nnum*1.0 /TotalNum* 100 as dec(10 ,2)))+ '%' as pankui,
 4 convert(varchar ,cast( pnum*1.0 /TotalNum* 100 as dec(10 ,2)))+ '%' as part,
 5 convert(varchar ,cast( tnum*1.0 /TotalNum* 100 as dec(10 ,2)))+ '%' as total,tnum ,ynum, TotalNum from
 6 (select prebmbm,SUM (case xmldata.value ('(/Items/WFItem[@name="queren"])[1]','nvarchar(max)' ) when '完全一致' then 1 else 0 end )as ynum,
 7 SUM(case xmldata.value ('(/Items/WFItem[@name="queren"])[1]','nvarchar(max)' ) when '盘亏' then 1 else 0 end )as nnum,
 8 SUM(case xmldata.value ('(/Items/WFItem[@name="queren"])[1]','nvarchar(max)' ) when '帐实不符资产' then 1 else 0 end) as pnum ,
 9 SUM(case docstatus when ' 已盘点' then 1 else 0 end) as tnum ,
10 count(zcbianhao ) as TotalNum from h3c02005_FAChecking group by prebmbm union
11 select ' 总计' as prebmbm ,SUM( case xmldata.value ('(/Items/WFItem[@name="queren"])[1]','nvarchar(max)' ) when '完全一致' then 1 else 0 end )as ynum,
12 SUM(case xmldata.value ('(/Items/WFItem[@name="queren"])[1]','nvarchar(max)' ) when '盘亏' then 1 else 0 end )as nnum,
13 SUM(case xmldata.value ('(/Items/WFItem[@name="queren"])[1]','nvarchar(max)' ) when '帐实不符资产' then 1 else 0 end) as pnum ,
14 SUM(case docstatus when ' 已盘点' then 1 else 0 end) as tnum ,
15 count(zcbianhao ) as TotalNum from h3c02005_FAChecking )temp1 order by RowNumber asc
原文地址:https://www.cnblogs.com/guojian2080/p/3581788.html