@@ -5,7 +5,7 @@ FIRST @pageSize@
55FROM table(MULTISET(
66SELECT
77 p.problem_id
8- , c.component_id
8+ , c.component_id
99, ro.room_id
1010, rc.round_id
1111, rc.division_id
@@ -16,62 +16,15 @@ SELECT
1616 WHEN (p.problem_type_id = 1 AND p.proposed_difficulty_id = 3) THEN 'Hard'::nvarchar(50)
1717 END AS difficulty
1818, rc.points
19- , NVL(CASE WHEN EXISTS (
20- SELECT 1
21- FROM component_state cs
22- WHERE cs.status_id < 120
23- AND cs.component_id = c.component_id
24- AND cs.coder_id = @userId@
25- UNION ALL
26- SELECT 1
27- FROM practice_component_state pcs
28- WHERE pcs.status_id < 120
29- AND pcs.component_id = c.component_id
30- AND pcs.coder_id = @userId@
31- ) THEN 'New'::nvarchar(50)
32- WHEN EXISTS (
33- SELECT 1
34- FROM component_state cs
35- WHERE cs.status_id = 150
36- AND cs.component_id = c.component_id
37- AND cs.coder_id = @userId@
38- UNION ALL
39- SELECT 1
40- FROM practice_component_state pcs
41- WHERE pcs.status_id = 150
42- AND pcs.component_id = c.component_id
43- AND pcs.coder_id = @userId@
44- ) THEN 'Solved'::nvarchar(50)
45- WHEN EXISTS (
46- SELECT 1
47- FROM component_state cs
48- WHERE cs.status_id >= 120
49- AND cs.component_id = c.component_id
50- AND cs.status_id != 150
51- AND cs.coder_id = @userId@
52- UNION ALL
53- SELECT 1
54- FROM practice_component_state pcs
55- WHERE pcs.status_id >= 120
56- AND pcs.component_id = c.component_id
57- AND pcs.status_id != 150
58- AND pcs.coder_id = @userId@
59- ) THEN 'Viewed'::nvarchar(50)
60- END, 'New') AS status
61- , NVL((
62- SELECT
63- points
64- FROM practice_component_state pcs
65- WHERE pcs.round_id = rc.round_id
66- AND pcs.component_id = c.component_id
67- AND pcs.coder_id = @userId@
68- ), 0) AS my_points
19+ , 'New' AS status
20+ , 0 AS my_points
6921FROM problem p
7022INNER JOIN component c ON c.problem_id = p.problem_id
7123INNER JOIN round_component rc ON rc.component_id = c.component_id
72- INNER JOIN round r ON r.round_id = rc.round_id AND r.status = 'A'
24+ INNER JOIN round r ON r.round_id = rc.round_id AND r.status = 'A' AND r.round_type_id = 3
7325INNER JOIN room ro ON ro.round_id = rc.round_id AND ro.room_type_id = 3 -- practice room
7426INNER JOIN problem_type_lu ptl ON ptl.problem_type_id = p.problem_type_id
27+ INNER JOIN contest con ON con.contest_id = r.contest_id
7528WHERE p.status_id = 90
7629)) srp
7730WHERE 1=1
0 commit comments