求一个sql 语句添加行 合计 内容如下

原始数据 table Table1
name num1 num2

Admin 1 2
Admin 2 2
Bind 3 3
Bind 1 4
Lab 3 3
R&D 2 4

类似这种的数据 想要生成的是
name num1 num2

Admin 1 2
Admin 2 2
Admin Toal 3 4
Bind 3 3
Bind 1 4
Bind Total 4 7
Lab 3 3
R&D 2 4
Lab & R&D 5 7
Total 12 18
像这样生成 每一个分组下面加上一个合计行 然后是最后加个总计行
在线等
请注意第三个分组里有种数据名称

select * from Table1
union all select name+' Toal' name ,sum(num1),sum(num2) from Table1
where name not in('Lab','R&D')
group by name
--order by name
union all select 'R&D & Lab' name,sum(num1),sum(num2) from Table1
where  name in('Lab','R&D')
union all select 'Total' name,sum(num1),sum(num2) from Table1
order by name

 

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-05-11
用的是什么数据库?oracle?MySQL?SQLServer?实际数据就只有这些,是吧?追问

sqlserver 08 r2 我就是给个模拟数据 实际比这要多 求个sql 我自己拿来套 谢谢

sql语句如何在查询记录后面增加一行合计
select 5, '合计' , SUM(C) , SUM(D) from Test 其中:先把表中的所有数据查询出来,然后按照表的结构,select 主键列,'合计',SUM(C),SUM(D) from 数据表 使用SQL的数学函数 动态添加一行数据,最后使用 union 关键字 连接两次查询的结果。

求一条sql语句,更新合计数,在线等。
update 表1 set summoney=(select sum(money) from 表2 where uid=表1.uid group by uid)

sql server查询多表记录,后面一行增加合计?
可以使用 UNION ALL 和 GROUP BY 语句实现查询多表记录并在后面一行增加合计。以下是一个示例 SQL 查询语句:SELECT t1.id, t1.name, t1.amount FROM table1 t1 UNION ALL SELECT t2.id, t2.name, t2.amount FROM table2 t2 GROUP BY t2.id, t2.name, t2.amount WITH ROLLUP;在此查询...

SQL 语句如何实现行列数据合计显示
这个是行列转换的处理。如果列名固定,只接写 case when 或是使用 pivot,如果列名不固定,就写动态语句,也是用case when 或是 pivot,只是要拼出来SQL。可以参考一下:http:\/\/blog.csdn.net\/ykj_fj\/article\/details\/22721479

sql视图表怎么增加合计行?
要在SQL视图中添加一个汇总行,可以使用`UNION ALL`语句将汇总数据添加到原始查询结果中。以下是一个示例,显示如何为"货款"和"件数"添加合计行:在这个例子中,我使用了`UNION ALL`将原始查询和汇总查询的结果合并在一起。汇总查询使用了`SUM`函数来计算"货款"和"件数"的总和。注意在汇总行中,我...

SQL搭配多条件查询算合计数
Select (Select Count(*) From 表 d Where ID Like '10%' And ID <> '10') As 10编码开头记录合计,(Select Count(*) From 表 d Where ID Like '11%' And ID <> '11') As 11编码开头记录合计

SQL语句实现:在表中的每一行增加一个总计行
select id,money,sum(money) over(parition by id order id) summoney from A -- 有没有试我的,是可行哦。

sql语句如何统计一行数据的总数
update 表 set QTY=(select sum(QTY) from 表 where LOT_NO not in('20130709014')) where LOT_NO='20130709014'---> 如果 LOT_NO 为 20130709014是最后一条记录,那么就满足你的要求,如果不是最后一条记录,就按照下面的操作去执行 首先 你要查到你表中的最后一条记录的 LOT_NO, 然后求出...

请教一个SQL语句求和问题!
alter table #a add sid int identity (1,1)---增加一列 sid 作为行编号 go declare @num int ---和 declare @sid int ---编号 set @num=0 set @sid=1 while @sid<4 begin select @num=@num+value1+value2+value3 from #a where sid=@sid set @sid=@sid+1 end select @num...

sql在两行查询结果上增加一个合计列
select sum(total) over() hj,* from (select er_bxzb.djbh as djbh, er_djlx.djlxmc as djlxmc, bd_costsubj.costname as costname, bd_deptdoc.deptname as deptname, bd_psndoc.psnname as psnname, sum(er_bxzb.total) as total, er_bxzb.djrq as djrq ...

相似回答