日期:2014-05-18  浏览次数:20473 次

求助了,这个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

*/