sql 两张表的并集运算
有两张表格,a,b,
a中有盘点数量,b中有库存数量
我想实现的功能是,a,b两张表做差,差异不为零的话就把这条记录写入b表中,要是b或者a中的商品不一样的话,也写入b中
怎么实现,请给代码,谢谢谢谢
[解决办法]
参考:
http://www.cnblogs.com/insus/articles/1925770.html
[解决办法]
--创建表结构select 商品,库存数量 into b_copy from b where 1=2;--合并结果放到中间表insert into b_copy(商品,库存数量) select t.商品,abs(sum(t.数量)) from (select a.商品,(a.盘点数量*-1) 数量 from a union all select b.商品,b.库存数量 ) t group by t.商品 having sum(t.数量)<>0;--按合并后的数量更新b表update b set 库存数量=b_copy.库存数量 from b_copy where b.商品=b_copy.商品;--插入b表不存在的商品insert into b(商品,库存数量) select 商品,库存数量 from b_copy where b_copy.库存数量<>0 and not exists (select 1 from b_copy where b_copy.商品=b.商品);--删除中间表drop table b_copy;