Oracle - 如何通过减去子查询中的值来更新表列?

时间:2017-04-16 12:09:29

标签: sql oracle

此查询在触发器

上给出( - )错误
UPDATE CHART_ACCOUNT
SET BALANCE=BALANCE-(SELECT SUM (AMOUNT) 
                     FROM CHASH_PAYMENT_DETIALS) 
WHERE CHART_ACCOUNT.ACCOUNT_ID=CHASH_PAYMENT_DETIALS.ACCOUNT_ID

1 个答案:

答案 0 :(得分:1)

我相信这就是你想要的:

UPDATE CHART_ACCOUNT ca
    SET BALANCE = BALANCE - (SELECT SUM(AMOUNT)
                             FROM CHASH_PAYMENT_DETIALS cpd
                             WHERE ca.ACCOUNT_ID = cpd.ACCOUNT_ID
                            )
    WHERE EXISTS (SELECT 1
                  FROM CHASH_PAYMENT_DETIALS cpd
                  WHERE ca.ACCOUNT_ID = cpd.ACCOUNT_ID
                 );