--如果不准用用户自定义函数的话,那就比较难做了.
--还有楼主给测试结果有误.A2的电费是258, 而不是225
--测试数据
create table ta(房间代码 varchar(10), 项目名称 varchar(10), 应交金额 float)
insert  ta select 'A1', '水费', 27.3
union  all select 'A1', '电费', 200
union  all select 'A1', '管理费', 316.8
union  all select 'A1', '其他费用', 30
union  all select 'A2', '水费', 30.3
union  all select 'A2', '电费', 258
union  all select 'A2', '管理费', 316.8
union  all select 'A2', '其他费用', 30
go
--创建用户自定义函数
create function dbo.getall(@roomcode varchar(10))
returns varchar(100)
begin
  declare @str varchar(100)
  set @str=''
  select @str=@str+项目名称+':'+convert(varchar(10), 应交金额)+';'
  from ta where 房间代码=@roomcode
  set @str=stuff(@str, len(@str), 1, '.')
  return @str
end
go
--查询
select 房间代码, 内容=dbo.getall(房间代码) 
from ta 
group by 房间代码
--清除
drop function dbo.getall
drop table ta