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}