当前位置: 代码迷 >> Sql Server >> 了,这个SQL语句该如何写?查询+统计
  详细解决方案

了,这个SQL语句该如何写?查询+统计

热度:449   发布时间:2016-04-27 14:35:46.0
求助了,这个SQL语句该怎么写?查询+统计
比如有这样的表段
id name pay
1 huang 2000
2 liu 5000
...........
我想输出的结果是
查询出来的样子是:
1 huang 2000
2 liu 5000
无 无 7000

第二种情况是
1 huang 2000
2 liu 5000
3 huang 3000 

...........(两个huang)

我想输出的结果是:
1 huang 5000
2 liu 5000
无 无 10000

谢谢了


------解决方案--------------------
/*
比如有这样的表段
id name pay
1 huang 2000
2 liu 5000
...........
我想输出的结果是
查询出来的样子是:
1 huang 2000
2 liu 5000
无 无 7000

第二种情况是
1 huang 2000
2 liu 5000
3 huang 3000 
(两个huang)
我想输出的结果是:
1 huang 5000
2 liu 5000
无 无 10000
*/
--情况一:
go
if OBJECT_ID('tbl') is not null
drop table tbl
go
create table tbl(
id varchar(5),
name varchar(10),
pay int
)
go
insert tbl
select '1','huang',2000 union all
select '2','liu',5000

select * from tbl 
union all
select '合','计',SUM(pay) from tbl

/*
结果:
id name pay
1 huang 2000
2 liu 5000
合 计 7000
*/
--情况二

go
if OBJECT_ID('tbl') is not null
drop table tbl
go
create table tbl(
id varchar(5),
name varchar(10),
pay int
)
go
insert tbl
select '1','huang',2000 union all
select '2','liu',5000 union all
select '1','huang',3000


select id,name,SUM(pay) from tbl
group by name,id
union all
select '合','计',SUM(pay) from tbl

/*
结果:(我把相同name的id改成一样了)
id name (无列名)
1 huang 5000
2 liu 5000
合 计 10000

*/
  相关解决方案