这应该使您接近:
select cat_name, sum(exp.exp_amount)
from (select exp_cat_id, exp_amount from cash_expenses
union all
select exp_cat_id, exp_amount from cheque_expenses) as exp
inner join exp_cat on exp.cat_id = exp_cat.cat_id
group by cat_name;