有两个表,表A字段为:ID,单价,数量,表B字段也是:ID,单价,数量。
求:把表A的内容添加到表B,如果表B中没有相同的id,则新增记录,如果表B中有相同的ID,则只把表B的数量相加。
这个语句得怎么写?写成存储过程也可以例:表A  ID   单价   数量      表B   ID   单价    数量     
         123   15     3              123    15    1
         456    3     5求:表B更新后怎么生成如下内容
   ID    单价   数量
   123   15      4    // 表B中有的则数量相加
   456   3       5    //表B中没有的新增记录
 

解决方案 »

  1.   

    先占位置
    select B.ID ,B.单价, b.数量+A.数量 as 数量 from    表B  B inner join   表A A ON B.ID =A.ID  union all 
    select ID ,单价, 数量 from 表B   where id not in (select id from 表a)
      

  2.   

    select   B.ID   ,B.单价,   b.数量+A.数量   as   数量   from         表B     B   inner   join       表A   A   ON   B.ID   =A.ID     union   all   
    select   ID   ,单价,   数量   from   表B       where   id   not   in   (select   id   from   表a)
      

  3.   

    ------------------------//简单一点的,,,
    declare @表A table (id varchar(10),单价  varchar(10), 数量 int) 
    insert into @表A select '123','15',3
    insert into @表A select '456','15',3declare @表b table (id varchar(10),单价  varchar(10), 数量 int) 
    insert into @表b select '123','15',3
    select a.id,a.单价,
     Case when isnull(a.数量+b.数量,'')='' then 
    a.数量
    else a.数量+b.数量  end  as数量
     from @表A a  left join @表b  B ON A.id=b.id