-- dict_erp片区 SELECT DISTINCT organ_code AS 片区id, organ_name AS 片区名称 FROM dim_organ_mapping ; -- report_车场启费 select a.ym, a.organ_code, a.organ_name, a.comm_id, a.comm_name, case when qifei_cost_num > 0 then 1 else 0 end qifei_comm_num from ( select ifnull(b.ym,${IF(LEN(p_ym)>0,"'" + p_ym+ "'","null")} ) ym, a.organ_code, a.organ_name, a.comm_id, a.comm_name ,sum(case when ifnull(case when ifnull(pr_total_receivable_amt, 0) = 0 then (case when ifnull(cu_receivable_amt,0) then ifnull(cu_paid_pr_amt,0) else cu_receivable_amt end) else pr_total_receivable_amt end,0) != 0 then 1 else 0 end) qifei_cost_num from (select distinct organ_code, organ_name, comm_id, comm_name from dim_organ_mapping where comm_id is not null) a left join ( select * from dwd_finance_fees_serial_d where MiddleCostCode in ('00010003','00030002') ${IF(LEN(p_ym)>0," AND ym ='" + p_ym+ "'","")} ) b on a.comm_id = b.commid group by b.ym, a.organ_code, a.organ_name, a.comm_id, a.comm_name ) a where 1=1 ${IF(LEN(p_area)>0," AND a.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} -- report_单位面积能耗(水) select organ_code , organ_name , comm_id , comm_name , MeterType , list_ym ,coalesce(Dosage/ContractArea,0) dosage_per_square_meter from dws_engine_meter_dosage_m a left join (select * from dim_project_base_info_d) b on a.comm_id = b.CommId where 1=1 and MeterType = '水表' ${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} ${IF(LEN(p_ym)>0," AND list_ym ='" + p_ym+ "'","")} -- report_设备完好率 SELECT ${if(len(p_area)>0, "comm_id code, comm_name name,","organ_code code, organ_name name,")} comm_id, comm_name, good_equipment_num, equipment_num FROM dws_engine_equipment_in_good_d; -- 基础指标 select '停车场数量' indicator_name, count(*) indicator_value from dim_carpark_info_d union all select '车位数量', count(*) from dim_parking_info_d union all select '巡查点位数', count(*) from dim_engine_point_d union all select '设施设备总数', count(*) from dim_engine_equipment_d ; -- 能耗环比 select * from dws_engine_meter_dosage_m where left(list_ym,4) = ${left(p_ym,4)} AND list_ym <> DATE_FORMAT(CURDATE(), '%Y%m') and MeterType in ('水表','电表') ${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} ; -- 能耗排名 select ${IF(LEN(p_area)>0,"comm_id code, comm_name name,","organ_code code, organ_name name,")} dosage from dws_engine_meter_dosage_m where MeterType = '电表' ${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} ${IF(LEN(p_ym)>0," AND list_ym ='" + left(p_ym,4) + right(p_ym,2) + "'","")} order by Dosage desc limit 5 ; -- 能耗同比 SELECT organ_code , organ_name , comm_id , comm_name , MeterType , list_ym , Dosage , Amount FROM dws_engine_meter_dosage_m where 1=1 AND list_ym <> DATE_FORMAT(CURDATE(), '%Y%m') AND list_ym >= '${FORMAT(MONTHDELTA(CONCATENATE(p_ym,"-01"),-60),"yyyyMM")}' ${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} ${IF(LEN(p_ym)>0," AND right(list_ym,2) ='" +right(p_ym,2) + "'","")} and MeterType in ('水表','电表') order by list_ym asc ; -- ---------------------------------------------------------------------------------------------------------- -- 设备巡查 select ${IF(LEN(p_area)>0,"organ_code, organ_name, comm_id code, comm_name name,","organ_code code, organ_name name,")} comm_id, comm_name, task_ym , task_finish_num , task_num FROM dws_engine_equipment_inspect_task_m where 1=1 ${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} ${IF(LEN(p_ym)>0," AND task_ym ='" + left(p_ym,4) + right(p_ym,2) + "'","")} SELECT SUM(task_finish_num) / sum(task_num) FROM dws_engine_equipment_inspect_task_m where task_ym = '202407'; -- 【erp设备巡检完成率】 select SUM(完成率分母) AS 完成率分母 ,SUM(完成率分子) AS 完成率分子 from ( select CommId ,count(0) 完成率分母 ,sum(case when TaskStatue=2 then 1 else 0 end) 完成率分子 -- select * from Tb_Eq_Flow_Task_Inspection where IsClose = 0 and TaskEndTime>='2024-07-01' and TaskEndTime<='2024-07-23 23:59:59' -- and TaskStatue='2' and IsClose=0 group by CommId )t ; -- ods SELECT count(1) as total_task ,sum(case when TaskStatue = 2 then 1 else 0 end) as finish_task -- ,sum(case when TaskStatue = 2 then 1 else 0 end) / count(1) as finish_task_rate -- select * from dw.ods_erp_tb_eq_flow_task_inspection_d where IsClose = 0 and TaskEndTime>='2024-07-01' and TaskEndTime<= '2024-07-23 23:59:59' -- AND TaskStatue = '2' and TaskEndTime<= DATE_SUB(CURDATE(),INTERVAL 1 SECOND) ; -- dwd select sum(case when TaskStatue = 2 then 1 else 0 end) task_finish_num , count(*) task_num from dw.dwd_engine_equipment_inspection_task_d a join (select distinct organ_code, organ_name, comm_id, comm_name from dw.dim_organ_mapping where comm_id is not null) b on a.CommId = b.comm_id where TaskEndTime <= DATE_SUB(CURDATE(),INTERVAL 1 SECOND) and TaskEndTime>='2024-07-01' ; -- 59180 - 59134 -- --------------------------------------------------------------------------------------------------------------- -- 水电收缴率 select sum(pr_paid_cu_amt + cu_paid_cu_amt + pr_offset_cu_amt + cu_offset_cu_amt - cu_offset_pr_amt - cu_paid_pr_amt) / sum(cu_receivable_amt + pr_exempt_cu_amt + cu_exempt_cu_amt + pr_total_receivable_amt + pr_total_received_amt + cu_early_exempt_pr_amt + cu_exempt_pr_amt) collection_rate from dwd_finance_fees_serial_d where ParentCostCode = '0008' ${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} ${IF(LEN(p_ym)>0," AND ym ='" + p_ym+ "'","")} -- 异常抬杆 select organ_code , organ_name , sum(manualOutNum) manualOutNum , sum(carflow) carflow , sum(manualOutNum) / sum(carflow) exceptionRate from dws_engine_stat_exception_rate_w where yw = (select distinct yw from dws_engine_stat_exception_rate_w order by yw desc limit 1) group by organ_code , organ_name; -- ============================================================================================================ -- 单位面积能耗 水 select organ_code , organ_name , comm_id , comm_name , MeterType , list_ym ,coalesce(Dosage/ContractArea,0) dosage_per_square_meter -- 单位面积能耗 水 from dws_engine_meter_dosage_m a left join (select * from dim_project_base_info_d) b on a.comm_id = b.CommId where 1=1 and MeterType = '水表' ${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} ${IF(LEN(p_ym)>0," AND list_ym ='" + left(p_ym,4) + right(p_ym,2) + "'","")} ; -- =================================== -- 基础指标 -- =================================== SELECT SUM(CASE WHEN TypeName = 'SpaceNum' THEN CNT ELSE 0 END) AS SpaceNum -- 设备空间数 ,SUM(CASE WHEN TypeName = 'ParkingSpaceNUM' THEN CNT ELSE 0 END) AS ParkingSpaceNUM -- 车位数量 ,SUM(CASE WHEN TypeName = 'ParkingNum' THEN CNT ELSE 0 END) AS ParkingNum -- 停车场数量 ,SUM(CASE WHEN TypeName = 'SpaceTaskNum' THEN CNT ELSE 0 END) AS SpaceTaskNum -- 设备空间任务数 ,SUM(CASE WHEN TypeName = 'DeviceNum' THEN CNT ELSE 0 END) AS DeviceNum -- 设备档案数 FROM ( SELECT CommID -- 项目ID ,'SpaceNum' AS TypeName ,COUNT(1) AS CNT -- 设备空间数 FROM dw.dim_engine_space_info_d -- 工程设备空间 GROUP BY CommID UNION ALL select CommID ,'ParkingSpaceNUM' AS TypeName ,COUNT(1) AS CNT -- 车位数量 from dw.dim_parking_info_d a where exists(select 1 from dw.dim_organ_mapping b where a.CommID = b.comm_id) GROUP BY CommID UNION ALL SELECT CommID ,'ParkingNum' AS TypeName ,count(1) AS CNT -- 停车场数量 from dw.dim_carpark_info_d a -- where exists(select 1 from dw.dim_organ_mapping b where a.CommID = b.comm_id) GROUP BY CommID UNION ALL SELECT CommID ,'SpaceTaskNum' AS TypeName ,count(1) AS CNT -- 设备空间任务数 from dw.ods_erp_tb_eq_plan_inspection_d a where a.IsEnable=1 and a.IsAuditing=1 -- where exists(select 1 from dw.dim_organ_mapping b where a.CommID = b.comm_id) GROUP BY CommID UNION ALL SELECT CommID ,'DeviceNum' AS TypeName ,COUNT(1) AS CNT from dw.dim_engine_equipment_d -- 设备档案数 GROUP BY CommID )A LEFT JOIN ( SELECT organ_code -- 片区code ,organ_name -- 片区名称 ,comm_id -- 项目id ,comm_name -- 项目名称 FROM dw.dim_organ_mapping -- 组织架构映射表 GROUP BY organ_code -- 片区code ,organ_name -- 片区名称 ,comm_id -- 项目id ,comm_name -- 项目名称 )B ON A.CommID = B.comm_id ${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} ; -- =========================================== -- 车位数量明细查询 -- =========================================== SELECT B.organ_name AS organ_name ,B.comm_name AS comm_name ,COUNT(1) AS CNT FROM ( SELECT CommID FROM dw.dim_parking_info_d -- WHERE UseState = '使用' -- and PropertyUses not in('闲置','未售出','未售') )A LEFT JOIN ( SELECT distinct organ_code ,organ_name ,comm_id ,comm_name from dim_organ_mapping where comm_id is not null )B ON A.CommID = B.comm_id WHERE B.comm_name IS NOT NULL GROUP BY B.organ_name ,B.comm_name ; -- ====================================== -- 能耗同环比分析 修改为单位面积能耗 -- ====================================== -- 单位面积能耗环比 select A.organ_code AS organ_code , A.organ_name AS organ_name , A.comm_id AS comm_id , A.comm_name AS comm_name , A.MeterType AS MeterType , A.list_ym AS list_ym , A.Dosage AS Dosage , A.Amount AS Amount ,IF(B.ContractArea = 0,0,A.Dosage / B.ContractArea) AS DOSAGE_PER_SQUARE_METER from ( SELECT organ_code , organ_name , comm_id , comm_name , MeterType , list_ym , Dosage , Amount FROM dws_engine_meter_dosage_m WHERE 1=1 AND MeterType IN ('水表','电表') AND list_ym < date_format(CURRENT_DATE(),'%Y%m') ${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} AND LEFT (list_ym,4) = ${left(p_ym,4)} ${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")} )A LEFT JOIN ( select CommId -- 项目id ,SUM(ContractArea) AS ContractArea-- 合同面积(建筑面积) from dim_project_base_info_d GROUP BY CommId )B ON A.comm_id = B.CommId ; -- 单位面积能耗_同比 select A.organ_code AS organ_code , A.organ_name AS organ_name , A.comm_id AS comm_id , A.comm_name AS comm_name , A.MeterType AS MeterType , A.list_ym AS list_ym , A.Dosage AS Dosage , A.Amount AS Amount ,IF(B.ContractArea = 0,0,A.Dosage / B.ContractArea) AS DOSAGE_PER_SQUARE_METER from ( SELECT organ_code , organ_name , comm_id , comm_name , MeterType , list_ym , Dosage , Amount FROM dws_engine_meter_dosage_m WHERE 1=1 AND list_ym <> DATE_FORMAT(CURDATE(), '%Y%m') AND list_ym >= '${FORMAT(MONTHDELTA(CONCATENATE(p_ym,"-01"),-60),"yyyyMM")}' ${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} ${IF(LEN(p_ym)>0," AND right(list_ym,2) ='" +right(p_ym,2) + "'","")} ${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")} and MeterType in ('水表','电表') order by list_ym asc )A LEFT JOIN ( select CommId -- 项目id ,SUM(ContractArea) AS ContractArea-- 合同面积(建筑面积) from dim_project_base_info_d GROUP BY CommId )B ON A.comm_id = B.CommId ;