一直补充不好意思
表内数据
品名   区分  数量
AA      0     100
AA      1     200
XY      0     100
XY      1     300
ZZ      1     400
AA      2     400
ZZ      3     500突然发现,根本没有 1 这个区分  现在想把区分为1的数据删掉的同时 
把区分为1的数量 加到品名相同且区分为0的数量上
最终数据希望变成
品名   区分  数量
AA      0     300
XY      0     400
ZZ      0     400
AA      2     400
ZZ      3     500

解决方案 »

  1.   

    那这样就可以啊 
    update TB set 数量=数量+b.数量
     from TB as a inner join (select 品名,数量 from TB where 区分=1) as b on a.品名=b.品名
     where  区分=0
     
    delete from TB where  区分=1 
      

  2.   

    DECLARE @TB table (
        品名 nvarchar(4),区分 int,数量 int);
     
     
    DELETE FROM TB OUTPUT DELETED.* INTO @TB WHERE 区分 IN(1,0)
     
    INSERT INTO TB(品名,区分,数量)
    SELECT 品名,0,SUM(数量)
    FROM @TB
    GROUP BY 品名
     
    SELECT * FROM dbo.TB/*
    AA 0 300
    XY 0 400
    ZZ 0 400
    AA 2 400
    ZZ 3 500*/
      

  3.   


    select 品名,replace(区分 ,1,0)区分 ,sum(数量)数量 from 表
    group by 品名,replace(区分 ,1,0)
    这个只是查询,不行就往那表里插入,用这个显示?
      

  4.   

    insert into tb(品名,区分,数量)
    select a.品名,0,0
    from (select distinct 品名 from tb ) as a left join (select 品名 from tb where 区分=0) as b on a.品名=b.品名
    where b.品名 is null
    然后再执行update TB set 数量=数量+b.数量
      from TB as a inner join (select 品名,数量 from TB where 区分=1) as b on a.品名=b.品名
      where  区分=0
      
     delete from TB where  区分=1