leading-project/finereport/xiazuan/3_property/4_投诉明细.sql

47 lines
1.5 KiB
SQL

SELECT
${if(len(p_area) == 0,"A.organ_name","A.comm_name")} as p_area -- 片区/项目
,SUM(A.tousu_incident_num) AS tousu_incident_num -- 投诉量
,sum(B.ROOM_NUM) AS ROOM_NUM -- 户数
,CASE WHEN sum(B.ROOM_NUM) = 0 THEN 0
ELSE SUM(A.tousu_incident_num) / sum(B.ROOM_NUM) * 10000
END AS AVG_INCIDENT_NUM -- 每万户均投诉量
FROM
(
SELECT
organ_code
,organ_name
,comm_id
,comm_name
-- ,incident_ym
,SUM(IFNULL(tousu_incident_num,0)) AS tousu_incident_num -- 投诉量
FROM dw.dws_estate_incident_info_m
where incident_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)+"'","")}
GROUP BY
organ_code
,organ_name
,comm_id
,comm_name
having SUM(IFNULL(tousu_incident_num,0)) !=0
)A
LEFT JOIN
(
SELECT
T1.organ_code AS ORGAN_CODE -- 片区ID
,T1.comm_id AS COMM_ID -- 项目ID
,count(T2.RoomName) AS ROOM_NUM -- 户数
FROM dw.dim_organ_mapping T1
INNER JOIN dim_room_d T2
ON T1.comm_id = T2.CommID
WHERE 1 = 1
${IF(LEN(p_area)>0," and organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
GROUP BY
T1.organ_code
,T1.comm_id
)B
ON A.comm_id = B.COMM_ID
AND A.organ_code = B.ORGAN_CODE
GROUP BY
${if(len(p_area) == 0,"A.organ_name","A.comm_name")}