更新实际
SET Actual.tranamt = ABS(Actual.tranamt-Reversal.tranamt),
Actual.tranamt_org = ABS(Actual.tranamt),
Actual.trans_flag =' U'
从
(选择*
FROM" MATCHPOINT_DEV"。" GTT_temp_raw_neft_cbs_iss"
)AS实际
INNER JOIN
(选择*
FROM" MATCHPOINT_DEV"。" GTT_temp_raw_neft_cbs_iss"在哪里(反转是非空或反转<>'')
)AS逆转
ON Actual.rrn = Reversal.reversalrrn;
获取错误
SQL错误:ORA-00933:SQL命令未正确结束
答案 0 :(得分:0)
Oracle不支持该查询 您可以在此帖子Update statement with inner join on Oracle
中尝试以下格式答案 1 :(得分:0)
一种方法使用merge
。另一种方法,子查询:
UPDATE "MATCHPOINT_DEV"."GTT_temp_raw_neft_cbs_iss" Actual
SET tranamt =
(SELECT ABS(Actual.tranamt - x.tranamt),
FROM "MATCHPOINT_DEV"."GTT_temp_raw_neft_cbs_iss" reversal
WHERE (reversal.reversalrrn IS NOT NULL OR reversal.reversalrrn <> '') and
Actual.rrn = Reversal.reversalrrn
),
tranamt_org = ABS(Actual.tranamt),
trans_flag = 'U'
WHERE EXISTS (SELECT 1
FROM "MATCHPOINT_DEV"."GTT_temp_raw_neft_cbs_iss" reversal
WHERE (reversal.reversalrrn IS NOT NULL OR reversal.reversalrrn <> '') and
Actual.rrn = Reversal.reversalrrn
);