create function getstr1(@content char(20))
returns varchar(2000)
as 
begin
declare @str varchar(2000)
set @str=''
select @str=@str+','+rtrim(m1m) from TEST where hao=@content
set @str=right(@str,len(@str)-1)
return @str
end
gocreate function getstr2(@content char(20))
returns varchar(2000)
as 
begin
declare @str varchar(2000)
set @str=''
select @str=@str+','+rtrim(m2m) from TEST where hao=@content
set @str=right(@str,len(@str)-1)
return @str
end
go语句:
select hao,dbo.getstr1(hao) as m1m,dbo.getstr2(hao) as m2m,sum(money) as total_money from TEST group by hao

解决方案 »

  1.   

    create function getstr1(@content varchar(20))
    returns varchar(2000)
    as 
    begin
    declare @str varchar(2000)
    set @str=''
    select @str=@str+rtrim(m1m) from TEST where hao=@content
    return @str
    end
    gocreate function getstr2(@content varchar(20))
    returns varchar(2000)
    as 
    begin
    declare @str varchar(2000)
    set @str=''
    select @str=@str+rtrim(m2m) from TEST where hao=@content
    return @str
    end
    go语句:
    select hao,dbo.getstr1(hao) as m1m,dbo.getstr2(hao) as m2m,sum(money) as total_money from TEST group by hao
      

  2.   

    1.
    --写一个自定义函数,实现字符串的合并:
    create function fmerg(@fd varchar(100),@isfirst bit)
    returns varchar(8000)
    as 
    begin
    declare @re varchar(8000)
    set @re=''
    if @isfirst=0
       select @re=@re+m1m from test where hao=@fd
    else
       select @re=@re+m2m from test where hao=@fd
    return(@re)
    end
    go
    2.
    --调用这个自定义函数实现你的要求
    select hao,dbo.fmerg(hao,0) as m1m,fmerg(hao,1) as m2m,[money]
    from
    (select hao,sum(money) as [money] from test group by hao) a
      

  3.   

    create function getstr1(@id Nchar(10))
    returns Nvarchar(2000)
    as 
    begin
    declare @str Nvarchar(2000)
    set @str=N''
    select @str=@str+rtrim(m1m) from 表
    where hao=@id
    return @str
    end
    GOcreate function getstr1(@id Nchar(10))
    returns Nvarchar(2000)
    as 
    begin
    declare @str Nvarchar(2000)
    set @str=N''
    select @str=@str+rtrim(m2m) from 表
    where hao=@id
    return @str
    end
    GO--------------------
    select hao,dbo.getstr1(hao) m1m,dbo.getstr2(hao) m2m,sum(money) total
    from 表
    group by hao
      

  4.   

    如果不是现成的表,而是access里的一个query,怎么办?
      

  5.   

    create function getstr1(@hao int)
    returns varchar(8000)
    as 
    begin
    declare @str varchar(8000)
    set @str=''
    select @str=@str+rtrim(m1m) from table1 where hao=@hao
    return @str
    end
    gocreate function getstr2(@hao int)
    returns varchar(8000)
    as 
    begin
    declare @str varchar(8000)
    set @str=''
    select @str=@str+rtrim(m2m) from table1 where hao=@hao
    return @str
    end
    go
    select hao,dbo.getstr1(m1m),dbo.getstr2(m2m),sum(total_money) from table1
      

  6.   

    发现一个问题:
    那个m1m和m2m字段是Text类型的,怎么办?报错说不能用rtrim函数!