456 lines
15 KiB
SQL
456 lines
15 KiB
SQL
-- dic_1_片区
|
|
|
|
|
|
SELECT DISTINCT
|
|
organ_code AS 片区id,
|
|
organ_name AS 片区名称
|
|
FROM dim_organ_mapping
|
|
;
|
|
|
|
|
|
|
|
-- report_1_空间运营
|
|
|
|
WITH T1 AS
|
|
(SELECT
|
|
organ_code,
|
|
organ_name,
|
|
assessment_occupany_rate AS 出租率
|
|
FROM dws_point_occupancy_rate_summary_pq
|
|
WHERE 1=1
|
|
AND ym = '${REPLACE(p_ym,"-","")}'
|
|
${IF(p_kj = "低于50%","AND assessment_occupany_rate <= 50","AND assessment_occupany_rate >= 50")}
|
|
${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
|
|
${IF(LEN(p_prgject)>0," AND comm_id IN ('"+JOINARRAY(p_prgject,"','")+"')", "")}
|
|
)
|
|
SELECT
|
|
ROW_NUMBER() OVER (ORDER BY 出租率) AS 序号,
|
|
organ_code,
|
|
organ_name,
|
|
出租率
|
|
FROM T1
|
|
ORDER BY 出租率 ${IF(p_kj = "低于50%","ASC","DESC")}
|
|
;
|
|
|
|
-- report_2_新零售
|
|
WITH T1 AS (
|
|
select
|
|
organ_code,
|
|
organ_name,
|
|
sum(sale_amt)/10000 sale_amt
|
|
from dws_innoveco_new_retail_m
|
|
where create_ym = '${REPLACE(p_ym,"-","")}'
|
|
group by organ_code,organ_name
|
|
),T2 AS (
|
|
SELECT
|
|
organ_code,organ_name,
|
|
SUM(IFNULL(index_retail_target,0)) AS sale_target,
|
|
SUM(index_retail_fact) AS sale_fact
|
|
FROM ods_innoveco_offlinesales
|
|
WHERE `year_month` = '${REPLACE(p_ym,"-","")}'
|
|
GROUP BY organ_code,organ_name
|
|
),T3 AS (
|
|
SELECT
|
|
T1.organ_code,
|
|
T1.organ_name,
|
|
T2.sale_target,
|
|
(T1.sale_amt + T2.sale_fact) AS sale_amt,
|
|
IFNULL((T1.sale_amt + T2.sale_fact) / T2.sale_target,0) AS 销售完成率
|
|
FROM T1 LEFT JOIN T2 ON T1.organ_code = T2.organ_code
|
|
)
|
|
SELECT
|
|
ROW_NUMBER() OVER (ORDER BY 销售完成率) AS 序号,
|
|
organ_code,
|
|
organ_name,
|
|
sale_target,
|
|
sale_amt,
|
|
销售完成率
|
|
FROM T3
|
|
WHERE 1=1
|
|
${IF(p_xls = "低于50%","AND 销售完成率 <= 0.5","AND 销售完成率 >= 0.5")}
|
|
ORDER BY 销售完成率 ${IF(p_xls = "低于50%","ASC","DESC")}
|
|
;
|
|
|
|
-- report_3_小悦到家
|
|
|
|
WITH T1 AS (
|
|
select
|
|
organ_code,
|
|
organ_name,
|
|
sum(xydj_amt) sale_amt
|
|
from dws_innoveco_new_retail_m
|
|
where create_ym = '${REPLACE(p_ym,"-","")}'
|
|
group by organ_code,organ_name
|
|
),T2 AS (
|
|
SELECT
|
|
organ_code,organ_name,
|
|
SUM(IFNULL(index_xiaoyuedj_target,0)) AS sale_target,
|
|
SUM(index_yuhetai_fact) AS sale_fact
|
|
FROM ods_innoveco_offlinesales
|
|
WHERE `year_month` = '${REPLACE(p_ym,"-","")}'
|
|
GROUP BY organ_code,organ_name
|
|
),T3 AS (
|
|
SELECT
|
|
T1.organ_code,
|
|
T1.organ_name,
|
|
T2.sale_target,
|
|
(T1.sale_amt + T2.sale_fact) AS sale_amt,
|
|
IFNULL((T1.sale_amt + T2.sale_fact) / T2.sale_target,0) AS 销售完成率
|
|
FROM T1 LEFT JOIN T2 ON T1.organ_code = T2.organ_code
|
|
)
|
|
SELECT
|
|
ROW_NUMBER() OVER (ORDER BY 销售完成率) AS 序号,
|
|
organ_code,
|
|
organ_name,
|
|
sale_target,
|
|
sale_amt,
|
|
销售完成率
|
|
FROM T3
|
|
WHERE 1=1
|
|
${IF(p_xydj = "低于50%","AND 销售完成率 <= 0.5","AND 销售完成率 >= 0.5")}
|
|
ORDER BY 销售完成率 ${IF(p_xydj = "低于50%","ASC","DESC")}
|
|
;
|
|
|
|
|
|
-- report_4_御和泰
|
|
|
|
WITH T1 AS (
|
|
select
|
|
organ_code,
|
|
organ_name,
|
|
sum(yht_amt)/10000 sale_amt
|
|
from dws_innoveco_new_retail_m
|
|
where create_ym = '${REPLACE(p_ym,"-","")}'
|
|
group by organ_code,organ_name
|
|
),T2 AS (
|
|
SELECT
|
|
organ_code,organ_name,
|
|
SUM(IFNULL(index_yuhetai_target,0)) AS sale_target,
|
|
SUM(index_xiaoyuedj_fact) AS sale_fact
|
|
FROM ods_innoveco_offlinesales
|
|
WHERE `year_month` = '${REPLACE(p_ym,"-","")}'
|
|
GROUP BY organ_code,organ_name
|
|
),T3 AS (
|
|
SELECT
|
|
T1.organ_code,
|
|
T1.organ_name,
|
|
T2.sale_target,
|
|
(T1.sale_amt + T2.sale_fact) AS sale_amt,
|
|
IFNULL((T1.sale_amt + T2.sale_fact) / T2.sale_target,0) AS 销售完成率
|
|
FROM T1 LEFT JOIN T2 ON T1.organ_code = T2.organ_code
|
|
)
|
|
SELECT
|
|
ROW_NUMBER() OVER (ORDER BY 销售完成率) AS 序号,
|
|
organ_code,
|
|
organ_name,
|
|
sale_target,
|
|
sale_amt,
|
|
销售完成率
|
|
FROM T3
|
|
WHERE 1=1
|
|
${IF(p_yht = "低于50%","AND 销售完成率 <= 0.5","AND 销售完成率 >= 0.5")}
|
|
ORDER BY 销售完成率 ${IF(p_yht = "低于50%","ASC","DESC")}
|
|
;
|
|
|
|
|
|
-- report_指标卡
|
|
|
|
|
|
WITH T1 AS (/*各类别应收与实收*/
|
|
SELECT
|
|
index_type,
|
|
SUM(IFNULL(index_receivable,0)) AS 应收金额,
|
|
SUM(IFNULL(index_receipts,0)) AS 实收金额
|
|
FROM ods_caiwu_profit
|
|
WHERE 1=1
|
|
AND `year_month` = '${REPLACE(p_ym,"-","")}'
|
|
${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
|
|
${IF(LEN(p_prgject)>0," AND comm_id IN ('"+JOINARRAY(p_prgject,"','")+"')", "")}
|
|
GROUP BY index_type
|
|
)
|
|
SELECT
|
|
IFNULL(SUM(CASE WHEN index_type = '附属资源/空间运营' THEN 实收金额 ELSE 0 END),0) AS 空间运营实收,
|
|
IFNULL(SUM(CASE WHEN index_type = '附属资源/空间运营' THEN 实收金额 / 应收金额 ELSE 0 END),0) AS 空间运营完成率,
|
|
IFNULL(SUM(CASE WHEN index_type = '美居' THEN 实收金额 ELSE 0 END),0) AS 美居实收,
|
|
IFNULL(SUM(CASE WHEN index_type = '美居' THEN 实收金额 / 应收金额 ELSE 0 END),0) AS 美居完成率,
|
|
IFNULL(SUM(CASE WHEN index_type = '社商/新零售' THEN 实收金额 ELSE 0 END),0) AS 新零售实收,
|
|
IFNULL(SUM(CASE WHEN index_type = '社商/新零售' THEN 实收金额 / 应收金额 ELSE 0 END),0) AS 新零售完成率,
|
|
IFNULL(SUM(CASE WHEN index_type = '资产运营/资产租售' THEN 实收金额 ELSE 0 END),0) AS 资产出租实收,
|
|
IFNULL(SUM(CASE WHEN index_type = '资产运营/资产租售' THEN 实收金额 / 应收金额 ELSE 0 END),0) AS 资产出租完成率,
|
|
IFNULL(SUM(实收金额),0) AS 全部实收,
|
|
IFNULL(SUM(实收金额) / SUM(应收金额),0) AS 完成率
|
|
FROM T1
|
|
;
|
|
|
|
|
|
-- 全国综合考核率
|
|
|
|
SELECT
|
|
CONCAT(assessment_occupany_rate,'%') AS 完成率
|
|
FROM dws_point_occupancy_rate_summary_all
|
|
WHERE ym = '${REPLACE(p_ym,"-","")}'
|
|
|
|
|
|
|
|
|
|
-- ======================================
|
|
-- report_1_空间运营_new
|
|
-- ======================================
|
|
|
|
SELECT
|
|
organ_name
|
|
,assessment_occupany_rate AS 出租率
|
|
,total_occupany_rate
|
|
,ROW_NUMBER() OVER (ORDER BY assessment_occupany_rate ${IF(p_kj = "低于50%","ASC","DESC")}) AS 序号
|
|
|
|
FROM
|
|
(
|
|
SELECT
|
|
|
|
${IF(LEN(p_area)>0,"comm_name", "organ_name")} AS organ_name
|
|
,assessment_occupany_rate AS assessment_occupany_rate
|
|
,total_occupany_rate as total_occupany_rate
|
|
FROM dw.dws_point_occupancy_rate_summary_project
|
|
WHERE 1=1
|
|
AND assessment_occupany_rate IS NOT NULL
|
|
AND ym = DATE_FORMAT(CURDATE(),'%Y%m')
|
|
${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
|
|
${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
|
|
)T
|
|
ORDER BY assessment_occupany_rate ${IF(p_kj = "低于50%","ASC","DESC")}
|
|
LIMIT 5
|
|
|
|
|
|
|
|
-- ======================================
|
|
-- 新零售
|
|
-- ======================================
|
|
|
|
SELECT
|
|
T1.organ_comm_name AS organ_name
|
|
,T1.FINISH_RATE AS 销售完成率
|
|
,T1.sale_target / 10000 AS sale_target
|
|
,T1.sale_amt / 10000 AS sale_amt
|
|
,ROW_NUMBER() OVER (ORDER BY T1.FINISH_RATE ${IF(p_xls = "低于50%","ASC","DESC")}) AS 序号
|
|
FROM
|
|
(
|
|
SELECT
|
|
-- B.organ_code
|
|
-- ,B.organ_name
|
|
-- ,B.comm_id
|
|
-- ,B.comm_name
|
|
${IF(LEN(p_area)>0,"B.comm_name", "B.organ_name")} AS organ_comm_name
|
|
-- ,SUM(B.sale_target) AS sale_target
|
|
,SUM(IFNULL(A.sale_amt,0)) + SUM(IFNULL(B.sale_fact,0)) AS sale_amt
|
|
,SUM(IFNULL(B.sale_target,0)) AS sale_target
|
|
,CASE WHEN SUM(IFNULL(B.sale_target,0)) = 0 THEN 0
|
|
ELSE SUM(IFNULL(A.sale_amt,0)) + SUM(IFNULL(B.sale_fact,0)) / SUM(IFNULL
|
|
(B.sale_target,0))
|
|
END AS FINISH_RATE -- 销售完成率
|
|
FROM
|
|
(
|
|
select
|
|
organ_code
|
|
,organ_name
|
|
,comm_id
|
|
,comm_name
|
|
,sum(case when create_ym = '202406' then 0 else sale_amt end) sale_amt -- 202406填报数据为线下+线下,所以不取线上数据
|
|
from dw.dws_innoveco_new_retail_m
|
|
where create_ym = '${REPLACE(p_ym,"-","")}'
|
|
group by
|
|
organ_code
|
|
,organ_name
|
|
,comm_id
|
|
,comm_name
|
|
)A
|
|
RIGHT JOIN
|
|
(
|
|
SELECT
|
|
organ_code
|
|
,organ_name
|
|
,comm_id
|
|
,comm_name
|
|
,SUM(IFNULL(index_retail_target,0))*10000 AS sale_target
|
|
,SUM(index_retail_fact)*10000 AS sale_fact
|
|
FROM dw.ods_innoveco_offlinesales
|
|
WHERE `year_month` = '${REPLACE(p_ym,"-","")}'
|
|
GROUP BY
|
|
organ_code
|
|
,organ_name
|
|
,comm_id
|
|
,comm_name
|
|
)B
|
|
ON A.organ_code = B.organ_code
|
|
AND A.comm_id = B.comm_id
|
|
WHERE 1=1
|
|
${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
|
|
${if(left(fine_role,2)=="项目","and B.comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
|
|
GROUP BY
|
|
${IF(LEN(p_area)>0,"B.comm_name", "B.organ_name")}
|
|
)T1
|
|
ORDER BY T1.FINISH_RATE ${IF(p_xls = "低于50%","ASC","DESC")}
|
|
LIMIT 5
|
|
|
|
|
|
-- ======================================
|
|
-- 小悦到家
|
|
-- ======================================
|
|
SELECT
|
|
T1.organ_comm_name AS organ_name
|
|
,T1.FINISH_RATE AS 销售完成率
|
|
,T1.sale_target AS sale_target
|
|
,T1.sale_amt AS sale_amt
|
|
,ROW_NUMBER() OVER (ORDER BY T1.FINISH_RATE ${IF(p_xydj = "低于50%","ASC","DESC")}) AS 序号
|
|
FROM
|
|
(
|
|
SELECT
|
|
${IF(LEN(p_area)>0,"A.comm_name", "A.organ_name")} AS organ_comm_name
|
|
,SUM(B.sale_target) AS sale_target
|
|
,SUM(A.sale_amt) + SUM(B.sale_fact) AS sale_amt
|
|
,CASE WHEN SUM(B.sale_target) = 0 THEN 0
|
|
ELSE IFNULL((SUM(A.sale_amt) + SUM(B.sale_fact)) / SUM(B.sale_target),0) END AS FINISH_RATE
|
|
FROM
|
|
(
|
|
select
|
|
organ_code
|
|
,organ_name
|
|
,comm_id
|
|
,comm_name
|
|
,sum(case when create_ym = '202406' then 0 else xydj_amt end) sale_amt -- 202406填报数据为线下+线下,所以不取线上数据
|
|
from dws_innoveco_new_retail_m
|
|
where create_ym = '${REPLACE(p_ym,"-","")}'
|
|
group by
|
|
organ_code
|
|
,organ_name
|
|
,comm_id
|
|
,comm_name
|
|
)A
|
|
LEFT JOIN
|
|
(
|
|
SELECT
|
|
organ_code
|
|
,organ_name
|
|
,comm_id
|
|
,comm_name
|
|
,SUM(IFNULL(index_xiaoyuedj_target,0)) AS sale_target
|
|
,SUM(index_xiaoyuedj_fact) AS sale_fact
|
|
FROM ods_innoveco_offlinesales
|
|
WHERE `year_month` = '${REPLACE(p_ym,"-","")}'
|
|
GROUP BY
|
|
organ_code
|
|
,organ_name
|
|
,comm_id
|
|
,comm_name
|
|
)B
|
|
ON A.organ_code = B.organ_code
|
|
AND A.comm_id = B.comm_id
|
|
WHERE 1=1
|
|
${IF(LEN(p_area)>0," AND A.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
|
|
${if(left(fine_role,2)=="项目","and B.comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
|
|
GROUP BY
|
|
${IF(LEN(p_area)>0,"A.comm_name", "A.organ_name")}
|
|
)T1
|
|
ORDER BY T1.FINISH_RATE ${IF(p_xydj = "低于50%","ASC","DESC")}
|
|
LIMIT 5
|
|
;
|
|
|
|
-- ======================================
|
|
-- 御和泰
|
|
-- ======================================
|
|
SELECT
|
|
T1.organ_comm_name AS organ_name
|
|
,T1.FINISH_RATE AS 销售完成率
|
|
,T1.sale_target / 10000 AS sale_target
|
|
,T1.sale_amt / 10000 AS sale_amt
|
|
,ROW_NUMBER() OVER (ORDER BY T1.FINISH_RATE ${IF(p_yht = "低于50%","ASC","DESC")}) AS 序号
|
|
FROM
|
|
(
|
|
SELECT
|
|
|
|
${IF(LEN(p_area)>0,"A.comm_name", "A.organ_name")} AS organ_comm_name
|
|
,SUM(B.sale_target) AS sale_target
|
|
,IFNULL(SUM(A.sale_amt) + SUM(B.sale_fact),0) AS sale_amt
|
|
,CASE WHEN SUM(B.sale_target) = 0 THEN 0
|
|
ELSE IFNULL(SUM(A.sale_amt) + SUM(B.sale_fact),0) / SUM(B.sale_target) END AS FINISH_RATE
|
|
FROM
|
|
(
|
|
select
|
|
organ_code
|
|
,organ_name
|
|
,comm_id
|
|
,comm_name
|
|
,sum(case when create_ym = '202406' then 0 else yht_amt end) sale_amt -- 202406填报数据为线下+线下,所以不取线上数据
|
|
from dws_innoveco_new_retail_m
|
|
where create_ym = '${REPLACE(p_ym,"-","")}'
|
|
group by
|
|
organ_code
|
|
,organ_name
|
|
,comm_id
|
|
,comm_name
|
|
)A
|
|
LEFT JOIN
|
|
(
|
|
SELECT
|
|
organ_code
|
|
,organ_name
|
|
,comm_id
|
|
,comm_name
|
|
,SUM(IFNULL(index_yuhetai_target,0))*10000 AS sale_target
|
|
,SUM(index_yuhetai_fact)*10000 AS sale_fact
|
|
FROM ods_innoveco_offlinesales
|
|
WHERE `year_month` = '${REPLACE(p_ym,"-","")}'
|
|
GROUP BY
|
|
organ_code
|
|
,organ_name
|
|
,comm_id
|
|
,comm_name
|
|
)B
|
|
ON A.organ_code = B.organ_code
|
|
AND A.comm_id = B.comm_id
|
|
WHERE 1=1
|
|
${IF(LEN(p_area)>0," AND A.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
|
|
${if(left(fine_role,2)=="项目","and B.comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
|
|
GROUP BY
|
|
${IF(LEN(p_area)>0,"A.comm_name", "A.organ_name")}
|
|
)T1
|
|
ORDER BY T1.FINISH_RATE ${IF(p_yht = "低于50%","ASC","DESC")}
|
|
LIMIT 5
|
|
|
|
|
|
|
|
WITH T1 AS (
|
|
select
|
|
organ_code,
|
|
organ_name,
|
|
sum(yht_amt)/10000 sale_amt
|
|
from dws_innoveco_new_retail_m
|
|
where create_ym = '${REPLACE(p_ym,"-","")}'
|
|
group by organ_code,organ_name
|
|
),T2 AS (
|
|
SELECT
|
|
organ_code,organ_name,
|
|
SUM(IFNULL(index_yuhetai_target,0)) AS sale_target,
|
|
SUM(index_xiaoyuedj_fact) AS sale_fact
|
|
FROM ods_innoveco_offlinesales
|
|
WHERE `year_month` = '${REPLACE(p_ym,"-","")}'
|
|
GROUP BY organ_code,organ_name
|
|
),T3 AS (
|
|
SELECT
|
|
T1.organ_code,
|
|
T1.organ_name,
|
|
T2.sale_target,
|
|
(T1.sale_amt + T2.sale_fact) AS sale_amt,
|
|
IFNULL((T1.sale_amt + T2.sale_fact) / T2.sale_target,0) AS 销售完成率
|
|
FROM T1 LEFT JOIN T2 ON T1.organ_code = T2.organ_code
|
|
)
|
|
SELECT
|
|
ROW_NUMBER() OVER (ORDER BY 销售完成率 ${IF(p_yht = "低于50%","ASC","DESC")}) AS 序号,
|
|
organ_code,
|
|
organ_name,
|
|
sale_target,
|
|
sale_amt,
|
|
销售完成率
|
|
FROM T3
|
|
WHERE 1=1
|
|
${IF(p_yht = "低于50%","AND 销售完成率 <= 0.5","AND 销售完成率 >= 0.5")}
|
|
ORDER BY 销售完成率 ${IF(p_yht = "低于50%","ASC","DESC")} |