我有两个表都有一个名为column_value的列,它包含一个数字值。现在我想要的是为每一行分别对两个表中的column_value的值求和,然后使用我获得的每一行的总和更新第一个表中的相同列(column_value)。
例如,我有表A和表B,它们都有一个列名AMOUNT
。
表A:
id AMOUNT
1 20
2 30
表B:
id AMOUNT
1 10
2 25
首先,我想获得以下结果
id AMOUNT AMOUNT TOTALAMOUNT
1 20 10 30
2 30 25 55
现在我想针对每个id更新A表的每一行TOTALAMOUNT
因此在更新之后,表A应该看起来像
id AMOUNT
1 30
2 55
答案 0 :(得分:0)
选择:
SELECT A.ID,
NVL(A.AMOUNT,0) A_AMOUNT ,
NVL(B.AMOUNT,0) B_AMOUNT ,
NVL(A.AMOUNT,0) + NVL(B.AMOUNT,0) AS TOTAL_AMOUNT
FROM TABLEA A, TABLEB B
WHERE A.ID = B.ID
<强>更新强>
UPDATE TABLEA A
SET A.AMOUNT = (SELECT NVL(A.AMOUNT,0) + NVL(B.AMOUNT,0)
FROM TABLEB B
WHERE A.ID = B.ID)
答案 1 :(得分:0)
你应该使用左连接。例如:
Table_a
id val
1 10
2 20
Table_b
id val
1 20
2 30
update Table_a a left join Table_b b on a.id = b.id set a.val = (a.val+b.val);
此操作后:
Table_a
id val
1 30
2 50