我这个sql有什么问题么?

update a inner JOIN b tb ona.id =tb.batch SET
x_plan_batch.money_amount= sum(tb.amount)
where a.id='0908f2d59b924c9f85a14aa34821bfaf'

或者说,这样
update p SET
p.done_num=sum( CASE WHEN tb.statusin('done','审核中') THEN 1 ELSE 0 END ),
p.task_count= count(tb.id)
from p inner JOIN t tb on tb.batch=p.id and p.id='0908f2d59b924c9f85a14aa34821bfaf';

都在报错。
就是根据另一张表的外键对应数据来更新这条数据。
统计某个在那个状态下的数量,还有总数之类的,这个sql有什么问题么?

包错的语句提供一下