Oracle子查询减法。

时间:2015-03-02 18:03:20

标签: oracle

如果我有两个像附加的表,我试图从不同的表示例中减去一个表中的值:

enter image description here

我想通过从表QI中减去QD来更新数字,以便新表格

QI: 一个900 b 800 c 700

最好的方法是什么?提前致谢

2 个答案:

答案 0 :(得分:1)

假设每qd个值只有0或1 col1行:

update qi
set col2 = col2 - (select col2 from qd where qd.col1 = qi.col1)
where exists (select null from qd where qd.col1 = qi.col1);

where exists子句是为了防止更新没有qi对应的qd行。

答案 1 :(得分:0)

最好不要在这种情况下使用子查询。使用方式如下:

select I.COL1,
    (I.COL2 - D.COL2) as COL2
from TABLE_QI I
left join TABLE_QD D on D.COL1 = I.COL1;

以下是SQL Fiddle