以下简要说明: select * from (select table1.收货单位,table1.价格,table1.发货总数,table1.价格*table1.发货总数 as 货款,iif(isnull(table2.已收款),0,table2.已收款) as 已收货款,货款-已收货款 as 欠收货款 其中的iif函数是为了将两子查询表联合时产生的null值转成数值0,以便后续运算! from (SELECT 收货单位, Sum(发货数) as 发货总数, Avg(单价) as 价格 FROM `F:\多表合并`.`Sheet1$` `Sheet1$` GROUP BY `Sheet1$`.收货单位) as table1 重命名子查询,便于主查询获取字段 LEFT JOIN 联接查询 (SELECT 收货单位, Sum(回款金额) as 已收款 FROM `F:\多表合并`.`Sheet2$` `Sheet2$` GROUP BY `Sheet2$`.收货单位) as table2 重命名子查询,便于主查询获取字段 on table1.收货单位=table2.收货单位) order by 收货单位, 欠收货款 desc 排序,实际本实例不用,因为都在分组时变成唯一记录了