有下表:
姓名 数学 语文 英语
-----------------
张三 60 70 80
李四 70 80 90
王五 65 75 85
怎样写语句可以得到下表:
姓名 数学 语文 英语 个人总分
------------------------
张三 60 70 80 210
李四 70 80 90 240
王五 65 75 85 225
合计 195 225 255 675
姓名 数学 语文 英语
-----------------
张三 60 70 80
李四 70 80 90
王五 65 75 85
怎样写语句可以得到下表:
姓名 数学 语文 英语 个人总分
------------------------
张三 60 70 80 210
李四 70 80 90 240
王五 65 75 85 225
合计 195 225 255 675
from taunion all
select '合计',sum(数学) ,sum(语文) ,sum(英语),sum(数学+ 语文+英语)
from ta
FROM tb_nameUNION ALLSELECT '合计' AS 姓名,
SUM(数学) 数学,
SUM(语文) 语文,
SUM(英语) 英语,
SUM(数学+语文+英语) AS 个人总分
FROM tb_name
-----------------
insert @t select '张三', 60, 70, 80
insert @t select '李四', 70, 80, 90
insert @t select '王五', 65, 75, 85
select *, 数学+语文+ 英语 个人总分 from @T
union all
select '合计',sum(数学) ,sum(语文) ,sum(英语),sum(数学+ 语文+英语)
from @t
/*
姓名 数学 语文 英语 个人总分
---------- ----------- ----------- ----------- -----------
张三 60 70 80 210
李四 70 80 90 240
王五 65 75 85 225
合计 195 225 255 675(所影响的行数为 4 行)
*/
union all
select '合计',* from (
select sum(数学)as 数学,sum(语文)as 语文,sum(英语) as 英语,sum(数学+语文+英语 as 个人总分 from 下表
)T
-----------------
insert t select 'aaa', 60, 70, 80
insert t select 'bbb', 70, 80, 90
insert t select 'ccc', 65, 75, 85
select b.* from(
select
a.sname,
sum(a.chinese) chinese,
sum(a.math) math,
sum(a.english) english,
sum(a.total) total
from (select *,Chinese+Math+ English as total from T ) a
group by a.sname
with rollup