csdn发帖的地方有个错误,没写完!
现在要把DATA1中不重复的数据插入到data2中, 
如:公司1的数据有2条,在data2中就插入1条就行。 TABLE DATA2 ID  NUMBER COMPANY CNUMBER 
1  1234  公司1  1234,3456  把其他重复的累加更新到保留的cnumber中。
3  3456  公司2  null 
... 
n  3456  公司N  null 

解决方案 »

  1.   

    if object_id('[data1]') is not null drop table [data1]
    go
    create table [data1]([id] int,[number] int,[company] varchar(5),[cnumber] varchar(10))
    create table [data2]([id] int,[number] int,[company] varchar(5),[cnumber] varchar(10))
    insert [data1]
    select 1,1234,'公司1',null union all
    select 2,3456,'公司1',null union all
    select 3,3456,'公司2',null--select * from [data1]insert data2
    select   min(id),min(number),company
    ,stuff((select ','+rtrim(number) from data1 where company=a.company for xml path('')),1,1,'')
    from data1 a
    group by companyselect * from data2--测试结果:
    /*
    id          number      company cnumber
    ----------- ----------- ------- ----------
    1           1234        公司1     1234,3456
    3           3456        公司2     3456*/
      

  2.   

    2000:
    if object_id('[data1]') is not null drop table [data1]
    go
    create table [data1]([id] int,[number] int,[company] varchar(5),[cnumber] varchar(10))
    create table [data2]([id] int,[number] int,[company] varchar(5),[cnumber] varchar(10))
    insert [data1]
    select 1,1234,'公司1',null union all
    select 2,3456,'公司1',null union all
    select 3,3456,'公司2',null--select * from [data1]insert data2
    select   min(id),min(number),company
    ,dbo.F_Str(company)
    from data1 a
    group by companyselect * from data2--测试结果:
    /*
    id          number      company cnumber
    ----------- ----------- ------- ----------
    1           1234        公司1     1234,3456
    3           3456        公司2     3456*/
      

  3.   

    2000的函数,忘贴了。。
    if object_id('F_Str') is not null
        drop function F_Str
    go
    create function F_Str(@compnay varchar(10))
    returns nvarchar(100)
    as
    begin
        declare @S nvarchar(100)
        select @S=isnull(@S+',','')+rtrim(number) from data1 where company=@compnay
        return @S
    end
    go