我如何获得别名'价值'从PF_BANKACCOUNTS_TRANSACTIONS到PF_BANKACCOUNTS_TRANSACTIONS.ACCOUNT_ID的余额?
SELECT SUM(TRANSACTION_AMOUNT) value
FROM PF_BANKACCOUNTS_TRANSACTIONS b
GROUP BY ACCOUNT_ID
UPDATE TABLE PF_BANKACCOUNTS_BALANCE
SET BALANCE = value
WHERE b.ACCOUNT_ID = PF_BANKACCOUNTS_TRANSACTIONS.ACCOUNT_ID
答案 0 :(得分:0)
试试这个
UPDATE PF_BANKACCOUNTS_BALANCE
SET BALANCE =
(SELECT SUM (TRANSACTION_AMOUNT) VALUE
FROM PF_BANKACCOUNTS_TRANSACTIONS b
WHERE b.ACCOUNT_ID = PF_BANKACCOUNTS_TRANSACTIONS.ACCOUNT_ID);
答案 1 :(得分:0)
您可以使用相关的UPDATE语句或MERGE:
UPDATE PF_BANKACCOUNTS_BALANCE b
SET BALANCE =
(SELECT SUM (TRANSACTION_AMOUNT)
FROM PF_BANKACCOUNTS_TRANSACTIONS t
WHERE b.ACCOUNT_ID = t.ACCOUNT_ID)
WHERE EXISTS (SELECT * FROM PF_BANKACCOUNTS_TRANSACTIONS t
WHERE b.ACCOUNT_ID = t.ACCOUNT_ID)
/
MERGE INTO PF_BANKACCOUNTS_BALANCE b
USING (SELECT SUM(TRANSACTION_AMOUNT) VALUE, ACCOUNT_ID
FROM PF_BANKACCOUNTS_TRANSACTIONS t
WHERE GROUP BY t.ACCOUNT_ID) s
ON (b.ACCOUNT_ID = s.ACCOUNT_ID)
WHEN MATCHED THEN
UPDATE SET b.BALANCE = s.VALUE
/
答案 2 :(得分:0)
使用PL / SQL很容易退出。
declare
value number;
begin
select sum(TRANSACTION_AMOUNT) into value from PF_BANKACCOUNTS_TRANSACTIONS b group by ACCOUNT_ID;
set BALANCE = value where b.ACCOUNT_ID = PF_BANKACCOUNTS_TRANSACTIONS.ACCOUNT_ID;
end;
/