|
@@ -428,15 +428,15 @@
|
|
|
SELECT
|
|
|
a.*,r.id,r.project_id,r.supervisor_id,
|
|
|
CASE
|
|
|
- WHEN COALESCE(MAX(CASE WHEN r.select_type = 4 THEN 1 ELSE 0 END),0) = 1 THEN 4 -- 如果有 4,就是4
|
|
|
- WHEN COALESCE(MAX(CASE WHEN r.select_type = 2 THEN 1 ELSE 0 END),0) = 1 THEN 2 -- 如果有 2 ,就是2
|
|
|
- WHEN COALESCE(MAX(CASE WHEN r.select_type = 1 THEN 1 ELSE 0 END),0) = 1 THEN 1 -- 如果没有2,但有 1
|
|
|
+ WHEN COALESCE(MAX(CASE WHEN r.select_type = 4 THEN 1 ELSE 0 END),0) = 1 THEN 4 -- 如果有 4
|
|
|
+ WHEN COALESCE(MAX(CASE WHEN r.select_type = 2 THEN 1 ELSE 0 END),0) = 1 THEN 2 -- 如果有 2
|
|
|
+ WHEN COALESCE(MAX(CASE WHEN r.select_type = 1 THEN 1 ELSE 0 END),0) = 1 THEN 1 -- 如果没有 2,但有 1
|
|
|
ELSE 0 -- 其他情况
|
|
|
END AS selectStatus,
|
|
|
|
|
|
-- 计算 selectStatus 为 1 或 2 的记录 id
|
|
|
CASE
|
|
|
- WHEN COALESCE(MAX(CASE WHEN r.select_type IN (1, 2, 4) THEN 1 ELSE 0 END), 0) = 1 THEN r.id
|
|
|
+ WHEN COALESCE(selectStatus, null) IN (1, 2 ,4) THEN r.id
|
|
|
ELSE NULL
|
|
|
END AS recordId
|
|
|
|
|
@@ -507,7 +507,7 @@
|
|
|
END
|
|
|
<choose>
|
|
|
<when test="isPassed == 0">IN (0, 1)</when>
|
|
|
- <when test="isPassed == 1">in (2,4)</when>
|
|
|
+ <when test="isPassed == 1">IN (2, 4)</when>
|
|
|
</choose>
|
|
|
|
|
|
ORDER BY
|
|
@@ -568,14 +568,14 @@
|
|
|
<!-- 合并 HAVING 条件 -->
|
|
|
HAVING
|
|
|
CASE
|
|
|
- WHEN COALESCE(MAX(CASE WHEN r.select_type = 4 THEN 1 ELSE 0 END),0) = 1 THEN 4 -- 如果有 2
|
|
|
+ WHEN COALESCE(MAX(CASE WHEN r.select_type = 4 THEN 1 ELSE 0 END),0) = 1 THEN 4 -- 如果有 4
|
|
|
WHEN COALESCE(MAX(CASE WHEN r.select_type = 2 THEN 1 ELSE 0 END),0) = 1 THEN 2 -- 如果有 2
|
|
|
WHEN COALESCE(MAX(CASE WHEN r.select_type = 1 THEN 1 ELSE 0 END),0) = 1 THEN 1 -- 如果没有 2,但有 1
|
|
|
ELSE 0
|
|
|
END
|
|
|
<choose>
|
|
|
<when test="isPassed == 0">IN (0, 1)</when>
|
|
|
- <when test="isPassed == 1">in (2,4)</when>
|
|
|
+ <when test="isPassed == 1">IN (2, 4)</when>
|
|
|
</choose>
|
|
|
) AS subquery;
|
|
|
</select>
|