注意使用inner join 连接
update daily_order_statistics
inner join
(
select a.*,b.daily_order_id,
b.cash_order_num,a.experience_count+b.cash_order_num as new_cash_order_num,b.cash_order_amount,
a.experience_amount+b.cash_order_amount as new_cash_order_amount ,b.order_actual_amount,a.experience_amount+b.order_actual_amount as new_order_actual_amount,
b.order_total_amount,
IFNULL(ROUND(((a.experience_amount+b.cash_order_amount) /order_total_amount *100),2),0) as cash_rate,
IFNULL(ROUND(((a.experience_amount+b.order_actual_amount) /order_total_amount *100),2),0) actual_rate
from experience_card_temp as a left join daily_order_statistics as b on a.order_date=b.order_date and a.brands_id=b.brands_id and a.company_id=b.company_id and a.operate_area_id=b.operate_area_id
and a.app_from=b.app_from
where ( a.order_date>='2019-09-24 00:00:00' or a.order_date='2019-09-16' )
)as c on
daily_order_statistics.daily_order_id=c.daily_order_id set daily_order_statistics.cash_order_num=c.new_cash_order_num,
daily_order_statistics.cash_order_amount=c.new_cash_order_amount,daily_order_statistics.order_actual_amount=c.new_order_actual_amount,
daily_order_statistics.cash_rate=c.cash_rate,daily_order_statistics.actual_rate=c.actual_rate
执行sql后如果出现如下错误:
ERROR_FOR_DIVISION_BY_ZERO