你先把地市弄出来单独当成一个维度表,然后再套子left join 查询去查数据。。这样就保证所有地市都会展示出来。不管子查询是否有数据。。。
select t0.city,t1.* from
( select city from FR_BUILD_PAYMENT group by city ) t0
left join
(
select a.city 地市,a.SR 收入,b.CB 成本,c.HK 回款,a.SR-b.CB 利润 from
(select CITY,SUM(SUM) SR from
FR_BUILD_PAYMENT
where WHETHER_UNIT='GC'
AND COST_TYPE in ('非自施工收入','自施工非交付收入','自施工交付收入')
group by CITY) a,
join
(select CITY,SUM(SUM) CB from FR_BUILD_PAYMENT
where WHETHER_UNIT='GC'
AND COST_TYPE in ('非自施工成本','自施工非人工成本','自施工人工成本')
group by CITY) b on a.city=b.city
join
(select CITY,SUM(SUM) HK from FR_BUILD_PAYMENT
where WHETHER_UNIT='GC'
AND COST_TYPE='回款' group by CITY) c on a.city=b.city) t1 on t0.city=t1.city