优化sql

This commit is contained in:
mashuanghui 2024-08-20 15:22:28 +08:00
parent 5a56ad3c75
commit 4d75d91766
1 changed files with 16 additions and 19 deletions

View File

@ -268,27 +268,24 @@
</select> </select>
<select id="wrkData" resultType="com.chushang.inspection.work.vo.WrkDataVO"> <select id="wrkData" resultType="com.chushang.inspection.work.vo.WrkDataVO">
SELECT wi.dept_id AS deptId, SELECT
p.project_name AS projectName, wi.dept_id AS deptId,
pt.project_id AS projectId, p.project_name AS projectName,
pt.`name` AS taskName, pt.project_id AS projectId,
pt.id AS taskId, pt.NAME AS taskName,
(SELECT count(*) pt.id AS taskId,
FROM wrk_info_terminal_record COALESCE ( t.totalTer, 0 ) AS totalTer,
WHERE wi.project_id = project_id) AS totalTer, COALESCE ( w.totalWrk, 0 ) AS totalWrk,
(SELECT COUNT(*) FROM wrk_info WHERE project_id = wi.project_id) AS totalwrk, COALESCE ( s.totalSuc, 0 ) AS totalSuc,
(SELECT COUNT(*) SUM( CASE WHEN w2.end_time IS NOT NULL AND w2.end_time &lt;= wi.dispose_time THEN 1 ELSE 0 END ) OVER ( PARTITION BY wi.project_id ) AS totalTimeOut
FROM wrk_info FROM
WHERE project_id = wi.project_id wrk_info wi
AND wrk_status in (4, 7, 8)) AS totalSuc,
(SELECT COUNT(*)
FROM wrk_info
WHERE project_id = wi.project_id
AND end_time IS not NULL
AND end_time &lt;= wi.dispose_time) AS totalTimeOut
FROM wrk_info wi
LEFT JOIN ta_polling_task pt ON pt.id = wi.lower_task_id LEFT JOIN ta_polling_task pt ON pt.id = wi.lower_task_id
LEFT JOIN wrk_project p ON pt.project_id = p.project_id LEFT JOIN wrk_project p ON pt.project_id = p.project_id
LEFT JOIN ( SELECT project_id, COUNT(*) AS totalTer FROM wrk_info_terminal_record GROUP BY project_id ) t ON wi.project_id = t.project_id
LEFT JOIN ( SELECT project_id, COUNT(*) AS totalWrk FROM wrk_info GROUP BY project_id ) w ON wi.project_id = w.project_id
LEFT JOIN ( SELECT project_id, COUNT(*) AS totalSuc FROM wrk_info WHERE wrk_status IN ( 4, 7, 8 ) GROUP BY project_id ) s ON wi.project_id = s.project_id
LEFT JOIN wrk_info w2 ON wi.project_id = w2.project_id
WHERE wi.del_state = 0 WHERE wi.del_state = 0
<if test="1 == 1"> <if test="1 == 1">
${query.sqlParam.get('sqlWhere')} ${query.sqlParam.get('sqlWhere')}