LEFT JOIN fact_origin_project_log_daily ld ON (ld.PROJECT_ID = md.ID AND ld.DEL_FLAG = 0 AND ld.CUSTOMER_ID = #{customerId} AND ld.ACTION_CODE IN( 'bad','good', 'perfect'))
WHERE md.DEL_FLAG = 0
AND md.ORIGIN = 'issue'
AND md.PROJECT_STATUS = 'closed'
AND md.CUSTOMER_ID = #{customerId}
AND md.MONTH_ID = #{monthId}
</select>
<!-- 网格项目自治率查询 -->
@ -92,29 +105,46 @@
COUNT( ID ) AS "count",
SUM( IFNULL( b.score, 80 ) ) AS "ratio"
FROM
( SELECT f.ID, f.AGENCY_ID FROM fact_origin_project_main_daily f
INNER JOIN dim_agency da ON f.FINISH_ORG_IDS LIKE concat('%', da.ID, '%')
AND da.AGENCY_DIM_TYPE = 'all'
AND da.`LEVEL` = #{level}
AND da.CUSTOMER_ID = #{customerId}
WHERE 1=1
AND f.MONTH_ID = #{monthId}) a
LEFT JOIN (
SELECT
PROJECT_ID,
AVG( CASE ACTION_CODE WHEN 'bad' THEN 60 WHEN 'perfect' THEN 100 ELSE 80 END ) AS score
FROM
fact_origin_project_log_daily
WHERE
(ACTION_CODE = 'bad'
OR ACTION_CODE = 'good'
OR ACTION_CODE = 'perfect')
AND CUSTOMER_ID = #{customerId}
AND MONTH_ID = #{monthId}
GROUP BY
PROJECT_ID
(
SELECT
f.ID,
log.AGENCY_ID
FROM
fact_origin_project_main_daily f
INNER JOIN fact_origin_project_log_daily log ON f.ID = log.PROJECT_ID
AND log.ACTION_CODE = 'close'
AND log.DEL_FLAG = '0'
AND log.CUSTOMER_ID = #{customerId}
AND log.MONTH_ID = #{monthId}
INNER JOIN dim_agency da ON log.PIDS LIKE concat( '%', da.ID, '%' )
AND da.AGENCY_DIM_TYPE = 'all'
AND da.`LEVEL` = #{level}
AND da.CUSTOMER_ID = #{customerId}
WHERE
1 = 1
AND f.ORIGIN = 'issue'
AND f.PROJECT_STATUS = 'closed'
AND f.CUSTOMER_ID = #{customerId}
) a
LEFT JOIN (
SELECT
l1.PROJECT_ID,
AVG( CASE l1.ACTION_CODE WHEN 'bad' THEN 60 WHEN 'perfect' THEN 100 ELSE 80 END ) AS score
FROM
fact_origin_project_log_daily l1
INNER JOIN fact_origin_project_log_daily l2 ON l1.PROJECT_ID = l2.PROJECT_ID
AND l2.ACTION_CODE = 'close'
AND l2.MONTH_ID = #{monthId}
AND l2.CUSTOMER_ID = #{customerId}
WHERE
( l1.ACTION_CODE = 'bad' OR l1.ACTION_CODE = 'good' OR l1.ACTION_CODE = 'perfect' )