sql语句如何在查询记录后面增加一行合计

比如表里面的记录是这样的ABCD1张三100102李四200203王武300304李逵40040我想要的效果就是能有有一条SQL语句直接就显示出来如下的效果ABCD1张三... 比如表里面的记录是这样的
A B C D
1 张三 100 10
2 李四 200 20
3 王武 300 30
4 李逵 400 40
我想要的效果就是能有有一条SQL语句直接就显示出来如下的效果
A B C D
1 张三 100 10
2 李四 200 20
3 王武 300 30
4 李逵 400 40
合计 1000 100
展开
 我来答
PlA_Zero
2018-03-08
知道答主
回答量:4
采纳率:100%
帮助的人:1.2万
展开全部
假如:这些数据在一张名为:Test 的数据表中
select * from Test
union
select 5, '合计' , SUM(C) , SUM(D) from Test
其中:先把表中的所有数据查询出来,然后按照表的结构,select 主键列,'合计',SUM(C),SUM(D) from 数据表 使用SQL的数学函数 动态添加一行数据,最后使用 union 关键字 连接两次查询的结果。
day忘不掉的痛
推荐于2018-03-08 · 知道合伙人数码行家
day忘不掉的痛
知道合伙人数码行家
采纳数:62646 获赞数:223937
本人担任公司网络部总经理多年,有充足的网络经验、互联网相关知识和资讯。

向TA提问 私信TA
展开全部
解决方法如下:
-创建表
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
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
华夏日长兴
推荐于2016-06-29 · TA获得超过9592个赞
知道大有可为答主
回答量:6305
采纳率:85%
帮助的人:3695万
展开全部
select a,
case
when b is not null then
b
else
'合计'
end b, sum(c) c, sum(d) d
from test1
group by rollup(a, b)
having grouping(a) = 1 or grouping(b) = 0
追问
你好,请问一下如果我还要再多查询一个字段的信息该怎么做呢,就是再增加一个E字段显示各个记录的地址
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式