delete from t_average_salary where CREATE_MONTH in ( DATE_FORMAT(now(), '%Y%m'), DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 2 MONTH), '%Y%m') ) insert into t_average_salary select CONCAT(DATE_FORMAT(now(), '%Y%m-'), a.ID) ID , a.EMP_IDCARD , round(sum(a.RELAY_SALARY) / ifnull(count(DISTINCT a.SALARY_MONTH), 1), 2) AVERAGE_SALARY , DATE_FORMAT(now(), '%Y%m') CREATE_MONTH from t_salary_account a where a.DELETE_FLAG=0 and a.SALARY_MONTH >= date_format(DATE_SUB(NOW(), INTERVAL 1 YEAR), '%Y%m') GROUP BY a.EMP_IDCARD