楼上sql最后部分缺少 group by tmp.客户名称吧。select tmp.客户名称, sum(tmp.应交费用) 应交费用, sum(已交费用) 已交费用, sum(tmp.应交费用) - sum(已交费用) 末交费用 from (select 客户名称, 应交费用, 0 已交费用 from A表 union all select 客户名称, 0 应交费用, 已交费用 from B表) tmpgroup by tmp.客户名称Having sum(tmp.应交费用) - sum(已交费用) >0建议楼主将A表设置2个字段,一个是应缴费用合计,还有一个是已缴费用合计,这样在许多地方处理起来都很方便。