--如果不准用用户自定义函数的话,那就比较难做了.
--还有楼主给测试结果有误.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
--还有楼主给测试结果有误.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
测试数据是我随便填上去的,没有从数据库中取出来
第二条是要改为:A2 水费:30;电费:258;管理费:316.8;其他费用:30.