把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