UPDATE t_main a1 INNER JOIN
(
SELECT main_id,SUM(weight) AS weight,SUM(money) AS money FROM detail_table
WHERE del_flag = FALSE
GROUP BY main_id
) a2 ON a1.main_id = a2.main_id
SET a1.weight = a2.weight,a1.money=a2.money
2、更新
UPDATE table SET weight = #{dto.weight} , state = CASE WHEN money > #{dto.money} THEN '02' WHEN money <= #{dto.money} THEN '03' ELSE '01' END WHERE id = #{dto.id}