ORACLE CASE WHEN 关联更新问题
本帖最后由 oqq__L 于 2014-04-30 10:51:14 编辑
ID CLASS COST CHARGE
173977 01 87.0000 87.0000
173977 13 12.0000 12.0000
173977 04 14.0000 14.0000
173977 08 160.0000 160.0000
173977 09 140.0000 140.0000
173977 西药 441.7760 441.7760
------------------------------------------------------------
我现在需要将这个表bill 里面 class=西药的 cost 和charge的值加在 class=13 上面。。。用case when 关联更新,可是写的时候,,写不出来了。。。大家来给我指导下。。谢谢。。。
最终要的效果是
ID CLASS COST CHARGE
173977 01 87.0000 87.0000
173977 13 453.776 453.776
173977 04 14.0000 14.0000
173977 08 160.0000 160.0000
173977 09 140.0000 140.0000
------解决方案--------------------UPDATE TAB
SET (TAB.COST, TAB.CHARGE) = (SELECT SUM(COST), SUM(CHARGE)
FROM TAB T
WHERE T.ID = TAB.ID
AND DECODE(T.CLASS, '西药', '13', T.CLASS) =