把select結果update更新到表中,從查詢結果中更新數據


mysql

update dw.agt_acco_balance a inner join (
select 
    account_num,
    sum(actual_recharge_amount) as sum,
    count(*) 
from ods.sl_topup_00000000001 b
inner join dw.agt_acco_balance c 
on b.account_num=c.acco_num
group by b.account_num
) as temp
on a.acco_num=temp.account_num
set a.balance=a.balance+temp.sum;

 

PostgreSQL

update dw.agt_acco_balance a
set balance=balance+temp.sum
from (
select 
    account_num,
    sum(actual_recharge_amount) as sum,
    count(*) 
from ods.sl_topup_00000000001 b
inner join dw.agt_acco_balance c 
on b.account_num=c.acco_num
group by b.account_num
) as temp
where a.acco_num=temp.account_num;

 

update dw.agt_acco_balance a
set balance=balance+temp.sum
from (
select 
    account_num,
    sum(actual_recharge_amount) as sum,
    count(*) 
from ods.sl_topup_00000000001 b
inner join dw.agt_acco_balance c 
on b.account_num=c.acco_num and c.source='sl_account_00000000001'
group by b.account_num
) as temp
where a.acco_num=temp.account_num and a.source='sl_account_00000000001';

 

參考:

  1)mysql 把select結果update更新到表中,從查詢結果中更新數據

  2) mysql和Postgresql通過查詢進行更新區別


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM