似如题所说,前期通过多个表联合查询得到结果,但是结果中有重复的数据,例如ID   NAME    C_ID
1     A      1.0
2     B      1.1 
3     C      1.2
4     D      1.2但是我想要得到的结果为
 ID   NAME  C_ID
  1    A    1.0
  2    B    1.1
  3    C+D  1.2
这个C_ID 还有很多种重复数据在里我就不一一写出了。
请各位大侠帮助解决一下

解决方案 »

  1.   

    create function dbo.fn_Merge(@C_ID  decimal(5,1))
    returns varchar(8000)
    as
    begin
       declare @name varchar(8000)
       set @name=''
       select @name=@name+'+'+NAME from test where C_ID=@C_ID
       return stuff(@name,1,1,'')
    end
    gocreate table test(ID int,NAME varchar(10),C_ID decimal(5,1))
    insert test select 1,'A',1.0
    union all select 2,'B',1.1
    union all select 3,'C',1.2
    union all select 4,'D',1.2select ID=min(ID),NAME,C_ID from
    (
    select ID,NAME=dbo.fn_Merge(C_ID),C_ID from test
    )a
    group by NAME,C_ID
      

  2.   

    1 A 1.0
    2 B 1.1
    3 C+D 1.2
      

  3.   

    SQL Server 2000对于这种聚合的处理,常用方法有两种:1、如楼上的,写一个自定义函数。2、用游标处理。借助自定义函数是最简单的方法。
      

  4.   

    bill024(咖啡熊) ( )  我采用了你的方法,可是当我在运行时候,系统提出 错误 原因是 从数据类型varchar转换成numeric时出错。怎么解决呀
      

  5.   

    create function dbo.fn_Merge(@C_ID  decimal(5,1))改为:create function dbo.fn_Merge(@C_ID  varchar(20))
      

  6.   

    把bill024(咖啡熊) ( )的方法 改下就行啦,类似的贴网上有很多
      

  7.   

    问题出现:正如ojuju10(longdchuanren)  所说 把 decimal 换成varchar就ok