现有表A,从表A中的数据复制到表B
然后对表A进行增,删,改,三项操作。操作后从更新后的表A中复制数据到表C
现在对表B和表C进行比较。
需求1:得到增加的数据(表C中有,表B中没有)
需求2:得到删除的数据(表B中有,表C中没有)
需求3:得到修改的数据(两表中都存在,只是某字段不一样)
分别需要这三个的SQL文本人菜鸟,不想做伸手党,请大神们给点思路,特别是需求3无从下手。请大家指点一下,拜托了!Oracle需求

解决方案 »

  1.   

    需求3:思路除去新增的和没有变化的,剩下的就是修改的了,供参考
    select * from c where (id,nn) not in (select id,nn from b union all select * from a where id not in (select id from b));
      

  2.   

    我是这样分析问题的:
      我用数学的表达式,  b与c的交集是两者共有的,及没有进行dml的操作的语句,为结果集1。取用表c与结果集1的差集结果集2,只能的到的是c中增加的,或者是c修改的数据。如果没有主键,三个问题似乎都不能得到解决。
      

  3.   

    需求3:
    select c.* from c,b where c.id=b.id;