SQL连表更新多个平均值字段
UPDATE res2_product AS a LEFT JOIN (SELECT pro_id, IF( SUM( transaction_date > DATE_SUB( CURRENT_DATE, INTERVAL 8 DAY ) ), SUM( IF ( transaction_date > DATE_SUB( CURRENT_DATE, INTERVAL 8 DAY ), transaction_quantity, 0 ) ) / SUM( transaction_date > DATE_SUB( CURRENT_DATE, INTERVAL 8 DAY ) ), 0) AS avg_stock_7, AVG( transaction_quantity ) AS avg_stock_30 FROM get2_transaction_daily WHERE transaction_date > DATE_SUB( CURRENT_DATE, INTERVAL 31 DAY ) GROUP BY pro_id) AS b ON a.pro_id = b.pro_id SET a.avg_stock_7 = IFNULL(b.avg_stock_7, 0), a.avg_stock_30 = IFNULL(b.avg_stock_30, 0)