|
@@ -428,6 +428,7 @@
|
|
SELECT
|
|
SELECT
|
|
a.*,r.id,r.project_id,r.supervisor_id,
|
|
a.*,r.id,r.project_id,r.supervisor_id,
|
|
CASE
|
|
CASE
|
|
|
|
+ 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 = 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
|
|
WHEN COALESCE(MAX(CASE WHEN r.select_type = 1 THEN 1 ELSE 0 END),0) = 1 THEN 1 -- 如果没有 2,但有 1
|
|
ELSE 0 -- 其他情况
|
|
ELSE 0 -- 其他情况
|
|
@@ -499,13 +500,14 @@
|
|
<!-- 合并 HAVING 子句 -->
|
|
<!-- 合并 HAVING 子句 -->
|
|
HAVING
|
|
HAVING
|
|
CASE
|
|
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 = 2 THEN 1 ELSE 0 END),0) = 1 THEN 2 -- 如果有 2
|
|
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
|
|
WHEN COALESCE(MAX(CASE WHEN r.select_type = 1 THEN 1 ELSE 0 END),0) = 1 THEN 1 -- 如果没有 2,但有 1
|
|
ELSE 0
|
|
ELSE 0
|
|
END
|
|
END
|
|
<choose>
|
|
<choose>
|
|
<when test="isPassed == 0">IN (0, 1)</when>
|
|
<when test="isPassed == 0">IN (0, 1)</when>
|
|
- <when test="isPassed == 1">= 2</when>
|
|
|
|
|
|
+ <when test="isPassed == 1">in (2,4)</when>
|
|
</choose>
|
|
</choose>
|
|
|
|
|
|
ORDER BY
|
|
ORDER BY
|
|
@@ -566,13 +568,14 @@
|
|
<!-- 合并 HAVING 条件 -->
|
|
<!-- 合并 HAVING 条件 -->
|
|
HAVING
|
|
HAVING
|
|
CASE
|
|
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 = 2 THEN 1 ELSE 0 END),0) = 1 THEN 2 -- 如果有 2
|
|
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
|
|
WHEN COALESCE(MAX(CASE WHEN r.select_type = 1 THEN 1 ELSE 0 END),0) = 1 THEN 1 -- 如果没有 2,但有 1
|
|
ELSE 0
|
|
ELSE 0
|
|
END
|
|
END
|
|
<choose>
|
|
<choose>
|
|
<when test="isPassed == 0">IN (0, 1)</when>
|
|
<when test="isPassed == 0">IN (0, 1)</when>
|
|
- <when test="isPassed == 1">= 2</when>
|
|
|
|
|
|
+ <when test="isPassed == 1">in (2,4)</when>
|
|
</choose>
|
|
</choose>
|
|
) AS subquery;
|
|
) AS subquery;
|
|
</select>
|
|
</select>
|