leading-project/finereport/kanban/pc/总裁.sql

248 lines
8.2 KiB
MySQL
Raw Normal View History

2024-07-23 21:40:49 +08:00
select
concat(right(ym,2) + 0 , '') ym
, sum(plan_num) plan_num
, sum(plan_complete_num) plan_complete_num
, sum(plan_incomplete_num) plan_incomplete_num
, sum(plan_complete_num) / sum(plan_num) plan_complete_rate
, sum(plan_adjust_num) plan_adjust_num
, sum(plan_adjust_num) / sum(plan_num) plan_adjust_rate
from dws_operation_plan_summary_m a
left join (select distinct organ_code, organ_name, comm_id, comm_name
, oa_organ_code, oa_organ_name, oa_comm_id, oa_comm_name from dim_organ_mapping where comm_id is not null) b
on a.subcompanyid = b.oa_comm_id
where 1=1
${if(len(organ)=0,"","and organ_code = '"+organ+"'")}
and left(ym,4) = '2024'
group by ym
order by ym asc
-- 【设备巡检】
-- 【old】
select
sum(task_finish_num)
, sum(task_num)
, sum(task_finish_num) / sum(task_num) inspection_finish_rate
FROM dws_engine_equipment_inspect_task_m
where task_ym = date_format(current_date(),'%Y%m')
${if(len(organ)=0,"","and organ_code = '"+organ+"'")}
;
-- 【new】
select
comm_id
,comm_name
,task_ym
sum(task_finish_num) / sum(task_num) as inspection_finish_rate
FROM dws_engine_equipment_inspect_task_m
where task_ym = date_format(current_date(),'%Y%m')
group by
comm_id
,comm_name
,task_ym
;
${if(len(organ)=0,"","and organ_code = '"+organ+"'")}
.select(task_finish_num) / .select(task_num)
-- ----------------------------------
-- report_商业出租率
-- ---------------------------------
select sum(lease_area)/sum(construction_area) rent_rate
FROM dws_business_rent_rate_d a
left join (select distinct id, erp_id from ods_bs_project_d) b
on a.project_id = b.id
left join (select distinct organ_code, organ_name, comm_id, comm_name from dim_organ_mapping where comm_id is not null) c
on b.erp_id = c.comm_id
where 1=1
${if(len(organ)=0,"","and c.organ_code = '"+organ+"'")}
-- ----------------------------------
-- report_商业出租率_new
-- ---------------------------------
SELECT
T.`type`
,SUM(T.rentRoomAreaSum) / (SUM(T.rentRoomAreaSum) + SUM(T.notRentRoomAreaSum)) as rent_rate -- 出租率
FROM
(
SELECT
B.`type`
,SUM(CASE WHEN A.business_status = 1 THEN A.construction_area ELSE 0 END ) AS rentRoomAreaSum -- 出租面积
,SUM(CASE WHEN A.business_status != 4 AND A.business_status != 1 THEN A.construction_area ELSE 0 END ) AS notRentRoomAreaSum -- 未出租面积
FROM
(
SELECT
id
,erp_id
,building_id
,business_status
,construction_area -- 建筑面积
FROM dw.ods_bs_room_d -- 商管房间表
WHERE del_flag = 0
AND enable_flag = 0
AND review_status = 2
)A
LEFT JOIN
(
select
id
,project_id
,project_name
,`type` -- 业态 商业街,集中商业,写字楼,底商
from dim_business_building_d
)B
on A.building_id = B.id
LEFT JOIN
(
select
distinct
organ_code
,organ_name
,comm_id
,comm_name
from dim_organ_mapping
where comm_id is not null
)C
on A.erp_id = C.comm_id
where 1=1
${if(len(organ)=0,"","and b.organ_code = '"+ organ+"'")}
GROUP BY
B.`type`
)T
GROUP BY
T.`type`
;
-- ----------------------------------
-- report_商业收缴率
-- ---------------------------------
select sum(received_money) / sum(current_sure_money) collection_rate
FROM dws_business_bill_m a
left join (select distinct id, erp_id from ods_bs_project_d) b
on a.project_id = b.id
left join (select distinct organ_code, organ_name, comm_id, comm_name from dim_organ_mapping where comm_id is not null) c
on b.erp_id = c.comm_id
where left(accrual_month,7) = '2024-06'
${if(len(organ)=0,"","and c.organ_code = '"+organ+"'")}
;
-- ----------------------------------
-- report_商业收缴率_new
-- ---------------------------------
SELECT
SUM(T.received_money) / SUM(T.current_sure_money) AS collection_rate -- 收缴率
FROM
(
SELECT
T1.received_money AS received_money
,T1.current_sure_money AS current_sure_money
FROM
(
SELECT
a.project_id -- 项目id 关联bs_project表
,SUM(a.received_money) AS received_money -- 实收金额
,SUM(a.current_sure_money) AS current_sure_money -- 实际应收金额=应收金额-合同减免金额
-- ,SUM(a.under_money) AS under_money -- 欠收金额
FROM
(
SELECT
contract_id
,accrual_month
,start_period
,bill_type
,received_money -- 实收金额
,current_sure_money -- 实际应收金额=应收金额-合同减免金额
,current_sure_money - received_money as under_money -- 欠收金额
,project_id
FROM dw.ods_bs_fi_bills_d
WHERE save_status = 1 -- 账单状态 0是保存 1是审核过的
-- ${if(len(project) == 0,"","AND project_id in (" + project + ")")}
)a
left join
(
SELECT
status
,stop_date
,id
FROM dw.ods_bs_contract_d
WHERE del_flag = 0
)bc
on bc.id = a.contract_id
WHERE ((bc.status != 2 and bc.stop_date is null) OR
(bc.stop_date is not null
and ((a.accrual_month <= DATE_FORMAT(bc.stop_date, '%Y-%m')
and a.start_period <= bc.stop_date)
or a.bill_type = 15)
))
group by
a.project_id
UNION ALL
SELECT
a.project_id
,SUM(b.received_amount) AS received_money
,SUM(b.received_money) AS current_sure_money
-- ,SUM(b.under_money) AS under_money
FROM
(
SELECT
receive_no -- 催缴单号
,project_id
FROM dw.ods_bs_fi_receive_other_d
where recheck_status = 2
)a
LEFT JOIN
(
SELECT
receive_no
,received_amount
,received_money
,received_money - received_amount AS under_money
FROM dw.ods_bs_fi_receive_other_item_d
)b
ON a.receive_no = b.receive_no
group by
project_id
)T1
left join
(
select
distinct id
,erp_id
from dw.ods_bs_project_d
) b
on T1.project_id = b.id
left join
(
select
distinct
organ_code
,organ_name
,comm_id
,comm_name
from dim_organ_mapping
where comm_id is not null
) c
on b.erp_id = c.comm_id
${if(len(organ)=0,"","and c.organ_code = '"+organ+"'")}
)T
;