优化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 id="wrkData" resultType="com.chushang.inspection.work.vo.WrkDataVO">
SELECT wi.dept_id AS deptId,
SELECT
wi.dept_id AS deptId,
p.project_name AS projectName,
pt.project_id AS projectId,
pt.`name` AS taskName,
pt.NAME AS taskName,
pt.id AS taskId,
(SELECT count(*)
FROM wrk_info_terminal_record
WHERE wi.project_id = project_id) AS totalTer,
(SELECT COUNT(*) FROM wrk_info WHERE project_id = wi.project_id) AS totalwrk,
(SELECT COUNT(*)
FROM wrk_info
WHERE project_id = wi.project_id
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
COALESCE ( t.totalTer, 0 ) AS totalTer,
COALESCE ( w.totalWrk, 0 ) AS totalWrk,
COALESCE ( s.totalSuc, 0 ) AS totalSuc,
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 wi
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 ( 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
<if test="1 == 1">
${query.sqlParam.get('sqlWhere')}