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

求这样sql汇总语句
部门 姓名 工资
-----------------
A JACK 20
B TOM 30
A JONE 80
B peter       30

怎么能做出这样的效果?
部门                 人员 合计
-----------------
A JACK,JONE                   100
B TOM,peter                     60


------解决方案--------------------
create table T(部门 varchar(10), 姓名 varchar(10), 工资 int)
insert T select 'A ', 'JACK ', 20
union all select 'B ', 'TOM ', 30
union all select 'A ', 'JONE ', 80
union all select 'B ', 'peter ', 30

create function fun(@部门 varchar(10))
returns varchar(200)
as
begin
declare @re varchar(200)
set @re= ' '
select @re=@re+ ', '+姓名 from T where 部门=@部门

return(stuff(@re, 1, 1, ' '))
end

select 部门, dbo.fun(部门) as 姓名, sum(工资) as 工资
from T
group by 部门

--result
部门 姓名 工资
---------- -------------------------------------------------------------------------------------------- -----------
A JACK,JONE 100
B TOM,peter 60

我的异常网推荐解决方案:软件开发者薪资,http://www.aiyiweb.com/other/1391128.html