sql怎么在最后面添加总计

sql怎么在最后面添加总计,第1张

--创建表if object_id('tempdb..#a','U') is not null

drop table #a

go

create table #a

(

A tinyint,

B char(4),

C smallint,

D tinyint

)

--插入数据

insert into #a (A,B,C,D)

values (1,'张三',100,10),

(2,'李四',200,20),

(3,'王武',300,30),

(4,'李逵',400,40)

--语句

with a as(

select cast(case grouping(A) when 0 then A else cast('合计' as sql_variant) end as char(4)) as A,cast(case grouping(A) when 0 then B else cast('合计' as sql_variant) end as char(4)) as B,sum(C) as C,sum(D) as D,row_number() over(partition by A order by A ) as rn

from #a

group by rollup(A,B)

)

select * from a where rn <>2 order by A

--结果展示

/*

A B C D rn

---- ---- ----------- ----------- --------------------

1 张三 100 10 1

2 李四 200 20 1

3 王武 300 30 1

4 李逵 400 40 1

合计 合计 1000 100 1

(5 行受影响)

*/

1,在你的输入字段里增加一个字段,2,给该字段赋值为"总计"3,将改字段隐藏,it_fieldcat-tech = 'X'.it_fieldcat-no_out = 'X'.4,设置总计字段的do_sum属性5,将该字段设置为排序字段再试试?

假设你有120人如图

在c2输入 公式=ROUNDUP(ROW(A1)/12,0)+(MOD(ROW(A1)-1,12)+1)*0.01 回车,点c2,鼠标停在c2右下角变成小十字,双击,

于是最后一行就是10.12了

在a122输入“小计”,下拉复制10个,最下面输个“总计”,c22至c131输入1.13、2.13……11.13

选中a1:c132,数据,排序,主要关键字选列c和有标题行,确定,清除c列

选中b列,按F5键,定位条件,空值,确定,输入公式=IF(A14="总计",SUM(B$1:B13)/2,SUM(OFFSET(B$1,IF(COUNTIF(A$1:A14,A14)=1,1,LOOKUP(1,0/(A$1:A13=A14),ROW(A$1:A13))),,12))) 同时按ctrl+回车键结束


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11354229.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存