更新版本
This commit is contained in:
parent
b0a2b6b3ec
commit
da78536473
@ -10,6 +10,7 @@
|
||||
<file url="file://$PROJECT_DIR$/dw/dim/dim_project_base_info_d.sql" dialect="MySQL" />
|
||||
<file url="file://$PROJECT_DIR$/dw/dim/dim_room_d.sql" dialect="MySQL" />
|
||||
<file url="file://$PROJECT_DIR$/dw/dwd/dwd_business_contract_info_d.sql" dialect="MySQL" />
|
||||
<file url="file://$PROJECT_DIR$/dw/dwd/dwd_cost_detail_data_d.sql" dialect="MySQL" />
|
||||
<file url="file://$PROJECT_DIR$/dw/dwd/dwd_engine_equipment_inspection_task_d.sql" dialect="MySQL" />
|
||||
<file url="file://$PROJECT_DIR$/dw/dwd/dwd_engine_equipment_status_d.sql" dialect="MySQL" />
|
||||
<file url="file://$PROJECT_DIR$/dw/dwd/dwd_engine_stat_exception_rate_d.sql" dialect="MySQL" />
|
||||
@ -29,6 +30,7 @@
|
||||
<file url="file://$PROJECT_DIR$/dw/dws/dws_operation_subcompany_plan_level_d.sql" dialect="MySQL" />
|
||||
<file url="file://$PROJECT_DIR$/dw/ods/ods_cost_budget_data_d.sql" dialect="Oracle" />
|
||||
<file url="file://$PROJECT_DIR$/finereport/kanban/mobile/创新生态_mobile.sql" dialect="MySQL" />
|
||||
<file url="file://$PROJECT_DIR$/finereport/kanban/mobile/工程_mobile.sql" dialect="MySQL" />
|
||||
<file url="file://$PROJECT_DIR$/finereport/kanban/mobile/物业_mobile.sql" dialect="MySQL" />
|
||||
<file url="file://$PROJECT_DIR$/finereport/kanban/pc/创新生态.sql" dialect="MySQL" />
|
||||
<file url="file://$PROJECT_DIR$/finereport/kanban/pc/商业.sql" dialect="MySQL" />
|
||||
|
@ -4,6 +4,8 @@
|
||||
-- 修改内容: 一个项目接管面积会有多个,先累加再关联
|
||||
-- 修改日期: 2024-09-24
|
||||
-- 修改内容: 项目对应业态取值规则变更
|
||||
-- 修改日期: 2024-10-09
|
||||
-- 修改内容: 新增合同到期时间
|
||||
-- *****************************
|
||||
select
|
||||
b.CommId
|
||||
@ -60,6 +62,7 @@ select
|
||||
, a.CommitteeTermStartDate
|
||||
, a.CommitteeTermEndDate
|
||||
, b.DictionaryName AS StateNameNew
|
||||
, a.ContractEndTime AS ContractEndTime
|
||||
from (
|
||||
select
|
||||
c.CommId
|
||||
@ -95,6 +98,7 @@ from (
|
||||
, c.CityLevel
|
||||
, c.CommitteeTermStartDate
|
||||
, c.CommitteeTermEndDate
|
||||
, a.ContractEndTime -- 合同结束时间
|
||||
, sum(TakeOverArea) TakeOverArea
|
||||
, sum(ContractArea) ContractArea
|
||||
, sum(ManageContractArea) ManageContractArea
|
||||
@ -118,7 +122,7 @@ from (
|
||||
on a.id = b.ParentId
|
||||
right join (select * from ods_erp_tb_hspr_projectbasicinfomation_d where IsDelete = 0) c
|
||||
on a.ParentId = c.id
|
||||
group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33
|
||||
group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34
|
||||
) a
|
||||
right join
|
||||
(
|
||||
|
@ -47,7 +47,7 @@ CREATE TABLE IF NOT EXISTS dw.dwd_cost_detail_data_d (
|
||||
|
||||
-- ----------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
SELECT * FROM dw.dwd_cost_detail_data_d;
|
||||
truncate dw.dwd_cost_detail_data_d;
|
||||
INSERT into dw.dwd_cost_detail_data_d
|
||||
SELECT
|
||||
|
@ -4,18 +4,23 @@ select
|
||||
, c.subcompanyname
|
||||
, c.supsubcomid
|
||||
, a.plan_level
|
||||
, count(*) plan_num
|
||||
, count(plan_name) plan_adjust_num
|
||||
, sum(case when plan_status = 2 then 1 else 0 end) plan_cancel_num
|
||||
, sum(case when plan_status = 7 then 1 else 0 end) plan_exempt_assess_num
|
||||
, sum(case when plan_status = 4 then 1 else 0 end) plan_incomplete_num
|
||||
, sum(case when left(start_date,7) = left(input_date,7) then 1 else 0 end) plan_thism_num
|
||||
, sum(case when plan_status = 0 then 1 else 0 end) plan_in_progress_num
|
||||
, sum(case when plan_status = 1 then 1 else 0 end) plan_complete_num
|
||||
,a.plan_name
|
||||
,a.id
|
||||
,a.responsible_person1
|
||||
,organ_code, organ_name, comm_id, comm_name
|
||||
, oa_organ_code, oa_organ_name, oa_comm_id, oa_comm_name
|
||||
-- , count(*) plan_num
|
||||
-- , count(plan_name) plan_adjust_num
|
||||
-- , sum(case when plan_status = 2 then 1 else 0 end) plan_cancel_num
|
||||
-- , sum(case when plan_status = 7 then 1 else 0 end) plan_exempt_assess_num
|
||||
-- , sum(case when plan_status = 4 then 1 else 0 end) plan_incomplete_num
|
||||
-- , sum(case when left(start_date,7) = left(input_date,7) then 1 else 0 end) plan_thism_num
|
||||
-- , sum(case when plan_status = 0 then 1 else 0 end) plan_in_progress_num
|
||||
-- , sum(case when plan_status = 1 then 1 else 0 end) plan_complete_num
|
||||
from (
|
||||
SELECT
|
||||
concat(left(trim(start_date),5),lpad(substring_index(substring_index(trim(start_date),'-',2),'-',-1),2,0),right(trim(start_date),3)) start_date,
|
||||
a.plan_level,
|
||||
a.plan_level,plan_name,
|
||||
jt.responsible_person1 ,
|
||||
a.id,
|
||||
a.plan_status,
|
||||
@ -26,6 +31,8 @@ from (
|
||||
cast( CONCAT( '["', REPLACE ( responsible_person1, ',', '","' ), '"]' ) AS json ),
|
||||
"$[*]" COLUMNS ( responsible_person1 INT PATH "$" )
|
||||
) AS jt
|
||||
where a.id in ('17015','17016','17024','17056','17075','17084','29372','29373','29374','29375','29376','29377','29433','29434','29435','29436','29437','29438','29439','29440','29503','29504','29505','29506','29507','29508','29509','29510','29561','29562','29564','29565','29566','29567','29568','29569','29591','29629','29630','40703','42177','42180','42767','42779','42837')
|
||||
|
||||
) a
|
||||
left join ods_oa_hrmresource_d b
|
||||
on a.responsible_person1 = b.id
|
||||
@ -33,10 +40,16 @@ from (
|
||||
on b.subcompanyid1 = c.id
|
||||
left join (select distinct plan_name from dwd_operations_plan_adjust_info_d) d
|
||||
on a.id = d.plan_name
|
||||
WHERE left(a.end_date,7) = '2024-09'
|
||||
group by
|
||||
left(a.end_date,7)
|
||||
, b.subcompanyid1
|
||||
, c.subcompanyname
|
||||
, c.supsubcomid
|
||||
, a.plan_level
|
||||
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) b1
|
||||
on b.subcompanyid1 = b1.oa_comm_id
|
||||
|
||||
WHERE left(a.end_date,7) = '2024-10'
|
||||
|
||||
-- AND b.subcompanyid1 in(select distinct oa_comm_id from dim_organ_mapping where comm_id is not null and organ_code = '0108')
|
||||
-- group by
|
||||
-- left(a.end_date,7)
|
||||
-- , b.subcompanyid1
|
||||
-- , c.subcompanyname
|
||||
-- , c.supsubcomid
|
||||
-- , a.plan_level
|
@ -1,5 +1,3 @@
|
||||
-- 【单位面积能耗同环比】
|
||||
|
||||
select
|
||||
A.organ_code AS organ_code
|
||||
, A.organ_name AS organ_name
|
||||
@ -9,7 +7,12 @@ select
|
||||
, 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
|
||||
, B.StateNameNew AS StateNameNew
|
||||
,CASE WHEN StateNameNew = '写字楼' AND MeterType = '水表' THEN IF(B.ContractArea = 0,0,(A.Dosage / B.totalarea)) ELSE 0 END AS XZL_SHUI
|
||||
,CASE WHEN StateNameNew = '写字楼' AND MeterType = '电表' THEN IF(B.ContractArea = 0,0,(A.Dosage / B.totalarea)) ELSE 0 END AS XZL_DIAN
|
||||
,CASE WHEN StateNameNew = '商住' AND MeterType = '水表' THEN IF(B.ContractArea = 0,0,(A.Dosage / B.totalarea)) ELSE 0 END AS SZ_SHUI
|
||||
,CASE WHEN StateNameNew = '商住' AND MeterType = '电表' THEN IF(B.ContractArea = 0,0,(A.Dosage / B.totalarea)) ELSE 0 END AS SZ_DIAN
|
||||
,IF(B.ContractArea = 0,0,(A.Dosage / B.totalarea)) AS DOSAGE_PER_SQUARE_METER
|
||||
from
|
||||
(
|
||||
SELECT
|
||||
@ -27,7 +30,8 @@ from
|
||||
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(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
|
||||
-- ${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
|
||||
${IF(LEN(p_shop)!=0," and comm_name IN ('"+JOINARRAY(p_shop,"','")+"')","")}
|
||||
${IF(LEN(p_ym)>0," AND right(list_ym,2) ='" +right(p_ym,2) + "'","")}
|
||||
and MeterType in ('水表','电表')
|
||||
order by list_ym asc
|
||||
@ -38,7 +42,9 @@ from
|
||||
AND list_ym <> DATE_FORMAT(CURDATE(), '%Y%m')
|
||||
and MeterType in ('水表','电表')
|
||||
${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
|
||||
${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
|
||||
-- ${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
|
||||
|
||||
${IF(LEN(p_shop)!=0," and comm_name IN ('"+JOINARRAY(p_shop,"','")+"')","")}
|
||||
ORDER BY list_ym ASC
|
||||
${IF(p_type = "环比","","*/")}
|
||||
)A
|
||||
@ -46,11 +52,16 @@ from
|
||||
(
|
||||
select
|
||||
CommId -- 项目id
|
||||
,CASE WHEN StateNameNew = '写字楼' THEN StateNameNew
|
||||
ELSE '商住'
|
||||
END AS StateNameNew
|
||||
,SUM(FloorArea + UndergroundArea) as totalarea
|
||||
,SUM(ContractArea) AS ContractArea-- 合同面积(建筑面积)
|
||||
from dim_project_base_info_d
|
||||
GROUP BY
|
||||
CommId
|
||||
CommId,CASE WHEN StateNameNew = '写字楼' THEN StateNameNew
|
||||
ELSE '商住'
|
||||
END
|
||||
)B
|
||||
ON A.comm_id = B.CommId
|
||||
ORDER BY A.list_ym,A.MeterType
|
||||
;
|
@ -18,7 +18,8 @@ with one_to_many AS(
|
||||
WHERE a.username = '${fine_username}'
|
||||
)
|
||||
select
|
||||
${if(len(p_area) == 0,"c.organ_name","c.comm_name")} as p_area
|
||||
-- ${if(len(p_area) == 0,"c.organ_name","c.comm_name")} as p_area
|
||||
${if(len(p_area) == 0,"COALESCE(c.oa_organ_name,e.subcompanyname)","COALESCE(c.oa_comm_name,e.subcompanyname)")} as p_area
|
||||
,c.oa_comm_id as oa_comm_id -- oa项目id
|
||||
,c.oa_comm_name as oa_comm_name -- oa项目名称
|
||||
,c.oa_organ_code as oa_organ_code -- oa片区id
|
||||
@ -31,6 +32,7 @@ select
|
||||
,a.plan_name as plan_name -- 计划名称
|
||||
,a.eval_criteria as plan_desc -- 计划内容
|
||||
,a.plan_level as plan_level -- 计划等级
|
||||
,a.plan_level_name as plan_level_name -- 计划等级名称
|
||||
,left(a.start_date,7) as ym -- 计划开始年月
|
||||
,a.start_dt as start_dt -- 计划开始时
|
||||
,a.end_date as end_date -- 计划结束时间
|
||||
@ -57,6 +59,7 @@ from
|
||||
,TO_DAYS(a.end_date) - TO_DAYS(curdate()) AS day_diff
|
||||
,a.eval_criteria -- 评价标准
|
||||
,a.executor -- 执行人
|
||||
,case when a.plan_level = 4 then '控股集团级计划' when a.plan_level = 0 then '一级计划' when a.plan_level = 1 then '二级计划' when a.plan_level = 3 then '三级计划' end plan_level_name
|
||||
FROM dw.dwd_operations_plan_info_d a,
|
||||
JSON_TABLE (
|
||||
cast( CONCAT( '["', REPLACE ( responsible_person1, ',', '","' ), '"]' ) AS json ),
|
||||
@ -103,15 +106,21 @@ from
|
||||
|
||||
)d
|
||||
on a.executor = d.id
|
||||
LEFT JOIN
|
||||
(
|
||||
SELECT
|
||||
*
|
||||
FROM dw.ods_oa_hrmsubcompany_d -- 分部信息表
|
||||
-- WHERE id = '288'
|
||||
)e
|
||||
ON b.subcompanyid1 = e.id
|
||||
where 1 = 1
|
||||
${if(len(p_startdate) == 0,"","and left(a.end_ym,7) = '" + p_startdate + "'")}
|
||||
${IF(LEN(p_area)!=0," and organ_code IN ('"+p_area+"')","")}
|
||||
${IF(LEN(p_area)!=0," and coalesce(c.oa_organ_code,e.id) IN ('"+p_area+"')","")}
|
||||
-- ${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
|
||||
AND CASE WHEN (SELECT mang_project FROM ods_one_to_many_perm WHERE username = '${fine_username}' AND mang_organ IS NULL) IS NOT NULL
|
||||
THEN comm_name IN (SELECT mang_project FROM one_to_many WHERE username = '${fine_username}')
|
||||
ELSE ${if(left(fine_role,2)=="项目","comm_name = '"+GETUSERDEPARTMENTS(3)+"'","1=1")} END
|
||||
|
||||
|
||||
THEN COALESCE(c.oa_organ_name,e.subcompanyname) IN (SELECT mang_project FROM one_to_many WHERE username = '${fine_username}')
|
||||
ELSE ${if(left(fine_role,2)=="项目","COALESCE(c.oa_organ_name,e.subcompanyname) = '"+GETUSERDEPARTMENTS(3)+"'","1=1")} END
|
||||
|
||||
-- 【筛选框数据集: dic_oa片区】
|
||||
|
||||
|
@ -1,82 +1,214 @@
|
||||
|
||||
-- 【dic_erp片区】
|
||||
with one_to_many_organ AS(
|
||||
SELECT
|
||||
a.username AS username -- 用户名
|
||||
,SUBSTRING_INDEX(SUBSTRING_INDEX(a.mang_organ, ',',b.help_topic_id + 1),',',-1) AS mang_organ -- 管理片区
|
||||
FROM ods_one_to_many_perm a
|
||||
JOIN mysql.help_topic b
|
||||
on b.help_topic_id < (LENGTH(a.mang_organ) - length(replace(a.mang_organ,',','')) + 1)
|
||||
WHERE a.username = '${fine_username}'
|
||||
)
|
||||
SELECT DISTINCT
|
||||
organ_code AS 片区id,
|
||||
organ_name AS 片区名称
|
||||
FROM dw.dws_engine_meter_dosage_m
|
||||
where 1=1
|
||||
${if(GETUSERDEPARTMENTS(2)="领悦集团总部","","and organ_name = '"+GETUSERDEPARTMENTS(2)+"'")}
|
||||
-- ${if(GETUSERDEPARTMENTS(2)="领悦集团总部","","and organ_name = '"+GETUSERDEPARTMENTS(2)+"'")}
|
||||
|
||||
AND CASE WHEN (SELECT mang_organ FROM ods_one_to_many_perm WHERE username = '${fine_username}') IS NOT NULL
|
||||
THEN organ_name IN (SELECT mang_organ FROM one_to_many_organ WHERE username = '${fine_username}')
|
||||
ELSE ${if(GETUSERDEPARTMENTS(2)!="领悦集团总部","organ_name = '"+GETUSERDEPARTMENTS(2)+"'","1=1")} END
|
||||
|
||||
|
||||
|
||||
-- 【能耗环比】
|
||||
|
||||
-- 折线图
|
||||
select
|
||||
list_ym
|
||||
, MeterType
|
||||
,SUM(Dosage) /10000 Dosage -- 能耗
|
||||
,SUM(Amount) AS Amount-- 能耗金额
|
||||
from dw.dws_engine_meter_dosage_m
|
||||
where 1=1
|
||||
and MeterType in ('水表','电表')
|
||||
AND list_ym < date_format(current_date(),'%Y%m')
|
||||
and left(list_ym,4) = ${left(p_ym,4)}
|
||||
${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
|
||||
${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
|
||||
-- ${IF(LEN(P_MeterType)>0," AND MeterType IN ('"+JOINARRAY(P_MeterType,"','")+"')", "")}
|
||||
GROUP by
|
||||
list_ym
|
||||
, MeterType
|
||||
ORDER BY
|
||||
list_ym
|
||||
|
||||
-- 明细表
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-- 【能耗同比】
|
||||
-- 【单位面积能耗_环比】
|
||||
with one_to_many AS(
|
||||
SELECT
|
||||
MeterType
|
||||
a.username AS username -- 用户名
|
||||
,SUBSTRING_INDEX(SUBSTRING_INDEX(a.mang_project, ',',b.help_topic_id + 1),',',-1) AS mang_project -- 管理项目名
|
||||
FROM ods_one_to_many_perm a
|
||||
JOIN mysql.help_topic b
|
||||
on b.help_topic_id < (LENGTH(a.mang_project) - length(replace(a.mang_project,',','')) + 1)
|
||||
WHERE a.username = '${fine_username}'
|
||||
)
|
||||
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
|
||||
, B.StateNameNew AS StateNameNew
|
||||
,CASE WHEN StateNameNew = '写字楼' AND MeterType = '水表' THEN IF(B.ContractArea = 0,0,(A.Dosage / B.totalarea)) ELSE 0 END AS XZL_SHUI
|
||||
,CASE WHEN StateNameNew = '写字楼' AND MeterType = '电表' THEN IF(B.ContractArea = 0,0,(A.Dosage / B.totalarea)) ELSE 0 END AS XZL_DIAN
|
||||
,CASE WHEN StateNameNew = '商住' AND MeterType = '水表' THEN IF(B.ContractArea = 0,0,(A.Dosage / B.totalarea)) ELSE 0 END AS SZ_SHUI
|
||||
,CASE WHEN StateNameNew = '商住' AND MeterType = '电表' THEN IF(B.ContractArea = 0,0,(A.Dosage / B.totalarea)) ELSE 0 END AS SZ_DIAN
|
||||
,IF(B.ContractArea = 0,0,(A.Dosage / B.totalarea)) AS DOSAGE_PER_SQUARE_METER
|
||||
from
|
||||
(
|
||||
SELECT
|
||||
organ_code
|
||||
, organ_name
|
||||
, comm_id
|
||||
, comm_name
|
||||
, MeterType
|
||||
, list_ym
|
||||
,SUM(Dosage) /10000 Dosage
|
||||
,SUM(Amount) AS Amount
|
||||
FROM dw.dws_engine_meter_dosage_m
|
||||
where 1=1
|
||||
, 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)+"'","")}
|
||||
AND CASE WHEN (SELECT mang_project FROM ods_one_to_many_perm WHERE username = '${fine_username}' AND mang_organ IS NULL) IS NOT NULL
|
||||
THEN comm_name IN (SELECT mang_project FROM one_to_many WHERE username = '${fine_username}')
|
||||
ELSE ${if(left(fine_role,2)=="项目","comm_name = '"+GETUSERDEPARTMENTS(3)+"'","1=1")} END
|
||||
|
||||
|
||||
)A
|
||||
LEFT JOIN
|
||||
(
|
||||
select
|
||||
CommId -- 项目id
|
||||
,CASE WHEN StateNameNew = '写字楼' THEN StateNameNew
|
||||
ELSE '商住'
|
||||
END AS StateNameNew
|
||||
,SUM(FloorArea + UndergroundArea) as totalarea
|
||||
,SUM(ContractArea) AS ContractArea-- 合同面积(建筑面积)
|
||||
from dim_project_base_info_d
|
||||
GROUP BY
|
||||
CommId,CASE WHEN StateNameNew = '写字楼' THEN StateNameNew
|
||||
ELSE '商住'
|
||||
END
|
||||
)B
|
||||
ON A.comm_id = B.CommId
|
||||
ORDER BY A.list_ym,A.MeterType
|
||||
|
||||
-- 【单位面积能耗_同比】
|
||||
|
||||
with one_to_many AS(
|
||||
SELECT
|
||||
a.username AS username -- 用户名
|
||||
,SUBSTRING_INDEX(SUBSTRING_INDEX(a.mang_project, ',',b.help_topic_id + 1),',',-1) AS mang_project -- 管理项目名
|
||||
FROM ods_one_to_many_perm a
|
||||
JOIN mysql.help_topic b
|
||||
on b.help_topic_id < (LENGTH(a.mang_project) - length(replace(a.mang_project,',','')) + 1)
|
||||
WHERE a.username = '${fine_username}'
|
||||
)
|
||||
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
|
||||
, B.StateNameNew AS StateNameNew
|
||||
,CASE WHEN StateNameNew = '写字楼' AND MeterType = '水表' THEN IF(B.ContractArea = 0,0,(A.Dosage / B.totalarea)) ELSE 0 END AS XZL_SHUI
|
||||
,CASE WHEN StateNameNew = '写字楼' AND MeterType = '电表' THEN IF(B.ContractArea = 0,0,(A.Dosage / B.totalarea)) ELSE 0 END AS XZL_DIAN
|
||||
,CASE WHEN StateNameNew = '商住' AND MeterType = '水表' THEN IF(B.ContractArea = 0,0,(A.Dosage / B.totalarea)) ELSE 0 END AS SZ_SHUI
|
||||
,CASE WHEN StateNameNew = '商住' AND MeterType = '电表' THEN IF(B.ContractArea = 0,0,(A.Dosage / B.totalarea)) ELSE 0 END AS SZ_DIAN
|
||||
,IF(B.ContractArea = 0,0,(A.Dosage / B.totalarea))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)+"'","")}
|
||||
-- ${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
|
||||
AND CASE WHEN (SELECT mang_project FROM ods_one_to_many_perm WHERE username = '${fine_username}' AND mang_organ IS NULL) IS NOT NULL
|
||||
THEN comm_name IN (SELECT mang_project FROM one_to_many WHERE username = '${fine_username}')
|
||||
ELSE ${if(left(fine_role,2)=="项目","comm_name = '"+GETUSERDEPARTMENTS(3)+"'","1=1")} END
|
||||
|
||||
and MeterType in ('水表','电表')
|
||||
group by
|
||||
MeterType
|
||||
,list_ym
|
||||
order by
|
||||
list_ym
|
||||
|
||||
|
||||
)A
|
||||
LEFT JOIN
|
||||
(
|
||||
select
|
||||
CommId -- 项目id
|
||||
,CASE WHEN StateNameNew = '写字楼' THEN StateNameNew
|
||||
ELSE '商住'
|
||||
END AS StateNameNew
|
||||
,SUM(FloorArea + UndergroundArea) as totalarea
|
||||
,SUM(ContractArea) AS ContractArea-- 合同面积(建筑面积)
|
||||
from dim_project_base_info_d
|
||||
GROUP BY
|
||||
CommId,CASE WHEN StateNameNew = '写字楼' THEN StateNameNew
|
||||
ELSE '商住'
|
||||
END
|
||||
)B
|
||||
ON A.comm_id = B.CommId
|
||||
order by A.list_ym,A.MeterType asc
|
||||
|
||||
|
||||
-- 【明细】
|
||||
|
||||
with one_to_many AS(
|
||||
SELECT
|
||||
a.username AS username -- 用户名
|
||||
,SUBSTRING_INDEX(SUBSTRING_INDEX(a.mang_project, ',',b.help_topic_id + 1),',',-1) AS mang_project -- 管理项目名
|
||||
FROM ods_one_to_many_perm a
|
||||
JOIN mysql.help_topic b
|
||||
on b.help_topic_id < (LENGTH(a.mang_project) - length(replace(a.mang_project,',','')) + 1)
|
||||
WHERE a.username = '${fine_username}'
|
||||
)
|
||||
select
|
||||
${if(len(p_area) == 0,"organ_name","comm_name")} as p_area -- 片区/项目
|
||||
|
||||
${if(len(p_area) == 0,"A.organ_name","A.comm_name")} as p_area -- 片区/项目
|
||||
, A.MeterType AS MeterType
|
||||
, SUM(A.Dosage) AS Dosage -- 能耗
|
||||
, sum(A.Amount) AS Amount -- 金额
|
||||
-- , B.StateNameNew AS StateNameNew -- 业态
|
||||
,IF(sum(B.ContractArea) = 0,0,(sum(A.Dosage) / sum(B.totalarea)))AS DOSAGE_PER_SQUARE_METER -- 单位面积能耗
|
||||
from
|
||||
(
|
||||
SELECT
|
||||
organ_code
|
||||
, organ_name
|
||||
, comm_id
|
||||
, comm_name
|
||||
, MeterType
|
||||
,SUM(Dosage) Dosage -- 能耗
|
||||
,SUM(Amount) AS Amount-- 能耗金额
|
||||
from dw.dws_engine_meter_dosage_m
|
||||
where 1=1
|
||||
, list_ym
|
||||
, Dosage
|
||||
, Amount
|
||||
FROM dws_engine_meter_dosage_m
|
||||
WHERE 1=1
|
||||
and MeterType in ('水表','电表')
|
||||
and list_ym = ${replace(p_ym,'-','')}
|
||||
${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
|
||||
${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
|
||||
${IF(LEN(P_MeterType)>0," AND MeterType IN ('"+JOINARRAY(P_MeterType,"','")+"')", "")}
|
||||
)A
|
||||
LEFT JOIN
|
||||
(
|
||||
select
|
||||
CommId -- 项目id
|
||||
,CASE WHEN StateNameNew = '写字楼' THEN StateNameNew
|
||||
ELSE '商住'
|
||||
END AS StateNameNew
|
||||
,SUM(FloorArea + UndergroundArea) as totalarea
|
||||
,SUM(ContractArea) AS ContractArea-- 合同面积(建筑面积)
|
||||
from dim_project_base_info_d
|
||||
GROUP BY
|
||||
${if(len(p_area) == 0,"organ_name","comm_name")}
|
||||
, MeterType
|
||||
|
||||
|
||||
CommId,CASE WHEN StateNameNew = '写字楼' THEN StateNameNew
|
||||
ELSE '商住'
|
||||
END
|
||||
)B
|
||||
ON A.comm_id = B.CommId
|
||||
GROUP BY
|
||||
${if(len(p_area) == 0,"A.organ_name","A.comm_name")}
|
||||
, A.MeterType
|
@ -132,6 +132,7 @@ FROM
|
||||
,organ_name
|
||||
,sum(ifnull(pr_paid_cu_amt,0) + ifnull(cu_paid_cu_amt,0) - ifnull(pr_offset_cu_amt,0) - ifnull(cu_offset_cu_amt,0)) / sum(ifnull(cu_receivable_amt,0) + ifnull(pr_exempt_cu_amt,0) + ifnull(cu_exempt_cu_amt,0)) cu_collection_rate
|
||||
,sum((- ifnull(cu_paid_pr_amt,0) - ifnull(cu_offset_pr_amt,0))) / sum(ifnull(pr_total_receivable_amt,0) + ifnull(pr_total_received_amt,0) + ifnull(cu_early_exempt_pr_amt,0) + ifnull(cu_exempt_pr_amt,0)) pr_collection_rate
|
||||
,sum(ifnull(pr_paid_cu_amt,0) + ifnull(cu_paid_cu_amt,0) - ifnull(pr_offset_cu_amt,0) - ifnull(cu_offset_cu_amt,0)- ifnull(cu_offset_pr_amt,0) - ifnull(cu_paid_pr_amt,0)) / sum(ifnull(cu_receivable_amt,0) + ifnull(pr_exempt_cu_amt,0) + ifnull(cu_exempt_cu_amt,0) + ifnull(pr_total_receivable_amt,0) + ifnull(pr_total_received_amt,0) + ifnull(cu_early_exempt_pr_amt,0) + ifnull(cu_exempt_pr_amt,0)) total_collection_rate
|
||||
from dwd_finance_fees_serial_d
|
||||
where ParentCostCode = '0001'
|
||||
and ym = left(current_date,7)
|
||||
|
Loading…
Reference in New Issue
Block a user