select
    c.organ_code, c.organ_name, c.comm_id, c.comm_name
     , a.room_num
     , a.accept_num
     , a.decorate_num
     , a.check_ins_num
     , a.vacant_num room_vacant_num
     , b.park_num
     , b.vacant_num park_vacant_num
from (
         select CommID
              , count(*) room_num
              , sum(case when StateName in ('已接房未装修','已装修未入住','已入住（业主自住）','已入住（二手房）','已入住（租户）') then 1 else 0 end) accept_num
              , sum(case when StateName in ('已装修未入住','已入住（业主自住）','已入住（二手房）','已入住（租户）') then 1 else 0 end) decorate_num
              , sum(case when StateName in ('已入住（业主自住）','已入住（二手房）','已入住（租户）') then 1 else 0 end) check_ins_num
              , sum(case when StateName in ('未售') then 1 else 0 end) vacant_num
         from dim_room_d a
                  left join dim_room_state_d b
                            on a.RoomState = b.RoomState
         group by CommID
     ) a
         left join (
    select
        CommID
         , count(*) park_num
         , sum(case when UseState = '闲置' then 1 else 0 end) vacant_num
    from dim_parking_info_d
    group by CommID
) b
                   on a.CommID = b.CommID
         inner join (select distinct organ_code, organ_name, comm_id, comm_name from dim_organ_mapping) c
                    on a.CommID = c.comm_id