|
1 | 1 | SELECT
|
2 | 2 | SKIP @firstRowIndex@
|
3 | 3 | FIRST @pageSize@
|
4 |
| - CASE WHEN (p.project_studio_spec_id IS NOT NULL) THEN 1 ELSE 0 END AS is_studio |
5 |
| - , pcl.description AS challenge_type |
6 |
| - , pn.value AS challenge_name |
7 |
| - , p.project_id AS challenge_id |
8 |
| - , p.tc_direct_project_id AS project_id |
9 |
| - , p.project_category_id AS project_type |
10 |
| - , pc3.parameter AS screening_scorecard_id |
11 |
| - , pc4.parameter AS review_scorecard_id |
12 |
| - , (select value from project_info pi70 where pi70.project_id = p.project_id and project_info_type_id = 70) AS cmc_task_id |
13 |
| - , pi4.value AS forum_id |
14 |
| - , (SELECT COUNT(*) FROM submission s1 INNER JOIN upload u1 ON s1.upload_id = u1.upload_id |
15 |
| - WHERE u1.project_id = p.project_id |
16 |
| - AND s1.submission_type_id IN (1, 3) |
17 |
| - AND s1.submission_status_id <> 5) AS num_submissions |
18 |
| - , (SELECT COUNT(*) FROM resource r WHERE r.project_id = p.project_id AND r.resource_role_id = 1) AS num_registrants |
19 |
| - , NVL((SELECT SUM(pr.number_of_submissions) FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 14), 0) AS number_of_checkpoints_prizes |
20 |
| - , (SELECT pr.prize_amount FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 14 AND pr.place = 1)::DECIMAL(10,2) AS top_checkpoint_prize |
21 |
| - , (SELECT pr.prize_amount FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 15 AND pr.place = 1)::DECIMAL(10,2) AS prize1 |
22 |
| - , (SELECT pr.prize_amount FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 15 AND pr.place = 2)::DECIMAL(10,2) AS prize2 |
23 |
| - , (SELECT pr.prize_amount FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 15 AND pr.place = 3)::DECIMAL(10,2) AS prize3 |
24 |
| - , (SELECT pr.prize_amount FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 15 AND pr.place = 4)::DECIMAL(10,2) AS prize4 |
25 |
| - , (SELECT pr.prize_amount FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 15 AND pr.place = 5)::DECIMAL(10,2) AS prize5 |
26 |
| - , (SELECT pr.prize_amount FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 15 AND pr.place = 6)::DECIMAL(10,2) AS prize6 |
27 |
| - , (SELECT pr.prize_amount FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 15 AND pr.place = 7)::DECIMAL(10,2) AS prize7 |
28 |
| - , (SELECT pr.prize_amount FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 15 AND pr.place = 8)::DECIMAL(10,2) AS prize8 |
29 |
| - , (SELECT NVL(NVL(ppd.actual_start_time, psd.actual_start_time), ppd.scheduled_start_time) |
30 |
| - FROM project proj |
31 |
| - , OUTER project_phase psd |
32 |
| - , OUTER project_phase ppd |
33 |
| - WHERE psd.project_id = proj.project_id |
34 |
| - AND psd.phase_type_id = 2 |
35 |
| - AND ppd.project_id = proj.project_id |
36 |
| - AND proj.project_id = p.project_id |
37 |
| - AND ppd.phase_type_id = 1) AS posting_date |
38 |
| - , NVL(NVL(pp1.actual_end_time, pp1.scheduled_end_time), NVL(pp2.actual_end_time, pp2.scheduled_end_time)) AS registration_end_date |
39 |
| - , NVL(pp15.actual_end_time , pp15.scheduled_end_time) AS checkpoint_submission_end_date |
40 |
| - , NVL(pp2.actual_end_time, pp2.scheduled_end_time) AS submission_end_date |
41 |
| - , NVL(NVL(pp6.actual_end_time, pp6.scheduled_end_time), NVL(pp4.actual_end_time, pp4.scheduled_end_time)) AS appeals_end_date |
42 |
| - , NVL(pp9.actual_end_time, pp9.scheduled_end_time) AS final_fix_end_date |
43 |
| - , NVL(nd_phase.actual_end_time, nd_phase.scheduled_end_time) AS current_phase_end_date |
44 |
| - , (( nd_phase.scheduled_end_time - CURRENT)::interval second(9) to second)::char(10)::int8 AS current_phase_remaining_time |
45 |
| - , pstatus.name AS current_status |
46 |
| - , CASE WHEN (nd_phase.scheduled_end_time IS NOT NULL) THEN |
47 |
| - (SELECT phase_type_lu.description FROM phase_type_lu |
48 |
| - WHERE phase_type_id = nd_phase.phase_type_id) |
49 |
| - ELSE NULL |
50 |
| - END AS current_phase_name |
51 |
| - , CASE WHEN pidr.value = 'On' THEN |
52 |
| - NVL((SELECT value::decimal FROM project_info pi_dr WHERE pi_dr.project_info_type_id = 30 AND pi_dr.project_id = p.project_id), (SELECT round(NVL(pi16.value::decimal, 0)) FROM project_info pi16 WHERE pi16.project_info_type_id = 16 AND pi16.project_id = p.project_id)) |
53 |
| - ELSE NULL END AS digital_run_points |
54 |
| - FROM project p |
55 |
| - , project_status_lu pstatus |
56 |
| - , project_phase pp1 --registration phase |
57 |
| - , project_phase pp2 --submission phase |
58 |
| - , outer project_phase pp6 --appeals phase |
59 |
| - , outer project_phase pp15 --checkpoint submission phase |
60 |
| - , outer project_phase pp9 --final fix phase |
61 |
| - , outer ( project_phase pp3 --screening phase |
62 |
| - , outer phase_criteria pc3 ) --screening phase scorecard |
63 |
| - , outer ( project_phase pp4 --review phase |
64 |
| - , outer phase_criteria pc4) --review phase scorecard |
65 |
| - , project_info pn |
66 |
| - , outer project_info pidr |
67 |
| - , outer project_phase nd_phase |
68 |
| - , project_category_lu pcl |
69 |
| - , outer project_info pi4 --forum id |
70 |
| - WHERE 1=1 |
71 |
| - AND p.project_status_id = pstatus.project_status_id |
72 |
| - AND p.project_id = pn.project_id |
73 |
| - AND pn.project_info_type_id = 6 |
74 |
| - AND pp1.project_id = p.project_id |
75 |
| - AND pp1.phase_type_id = 1 --registration phase |
76 |
| - AND pp2.project_id = p.project_id |
77 |
| - AND pp2.phase_type_id = 2 --submission phase |
78 |
| - AND pp6.project_id = p.project_id |
79 |
| - AND pp6.phase_type_id = 6 --appeals phase |
80 |
| - AND pp15.project_id = p.project_id |
81 |
| - AND pp15.phase_type_id = 15 --checkpoint submission phase |
82 |
| - AND pp9.project_id = p.project_id |
83 |
| - AND pp9.phase_type_id = 9 --final fix phase |
84 |
| - AND pp9.project_phase_id = (SELECT MAX(project_phase_id) FROM project_phase WHERE project_id = p.project_id AND phase_type_id = 9) --last final fix only |
85 |
| - AND pp3.project_id = p.project_id |
86 |
| - AND pp3.phase_type_id = 3 --screening phase |
87 |
| - AND pp3.project_phase_id = pc3.project_phase_id |
88 |
| - AND pc3.phase_criteria_type_id = 1 -- scorecardid type |
89 |
| - AND pp4.project_id = p.project_id |
90 |
| - AND pp4.phase_type_id = 4 --review phase |
91 |
| - AND pp4.project_phase_id = pc4.project_phase_id |
92 |
| - AND pc4.phase_criteria_type_id = 1 -- scorecardid type |
93 |
| - AND pidr.project_id = p.project_id |
94 |
| - AND pidr.project_info_type_id = 26 --digital run |
95 |
| - AND pi4.project_id = p.project_id |
96 |
| - AND pi4.project_info_type_id = 4 --forum id |
97 |
| - AND p.project_Id = nd_phase.project_id |
98 |
| - AND nd_phase.project_phase_id = (SELECT MAX(project_phase_id) FROM project_phase WHERE project_id = p.project_id AND phase_status_id = 2 AND phase_type_id IN (1,2,3,4,5,6,7,8,9,10,11,12)) |
99 |
| - AND p.project_category_id = pcl.project_category_id |
100 |
| - -- Filter the private challenge |
101 |
| - AND p.project_id IN (SELECT |
102 |
| - contest_id |
103 |
| - FROM contest_eligibility ce |
104 |
| - , group_contest_eligibility gce |
105 |
| - WHERE ce.contest_eligibility_id = gce.contest_eligibility_id |
106 |
| - AND gce.group_id = @communityId@) |
107 |
| - AND pcl.project_category_id NOT IN (27, 37) --exclude when spec review was a 'contest.' Also exclude MM, which is in there as a 'software' contest. |
108 |
| - -- start of parameters |
109 |
| - AND pstatus.project_status_id IN (@project_status_id@) |
110 |
| - AND pcl.project_type_id IN (@project_type_id@) |
111 |
| - AND pp1.phase_status_id IN (@registration_phase_status@) |
112 |
| - AND NVL(pp2.actual_end_time, pp2.scheduled_end_time) BETWEEN TO_DATE('@submissionEndFrom@ 00:00:00', '%Y-%m-%d %H:%M:%S') AND TO_DATE('@submissionEndTo@ 23:59:59', '%Y-%m-%d %H:%M:%S') |
| 4 | + CASE WHEN (p.project_studio_spec_id IS NOT NULL) THEN 1 ELSE 0 END AS is_studio |
| 5 | +, p.project_id AS challenge_id |
| 6 | +, pcl.description AS challenge_type |
| 7 | +, pi.challenge_name |
| 8 | +, p.tc_direct_project_id AS project_id |
| 9 | +, screening.parameter AS screening_scorecard_id |
| 10 | +, review.parameter AS review_scorecard_id |
| 11 | +, pi.cmc_task_id |
| 12 | +, pi.forum_id |
| 13 | +, (SELECT COUNT(*) FROM submission s1 INNER JOIN upload u1 ON s1.upload_id = u1.upload_id |
| 14 | + WHERE u1.project_id = p.project_id |
| 15 | + AND s1.submission_type_id IN (1, 3) |
| 16 | + AND s1.submission_status_id <> 5) AS num_submissions |
| 17 | +, (SELECT COUNT(*) FROM resource r WHERE r.project_id = p.project_id AND r.resource_role_id = 1) AS num_registrants |
| 18 | +, NVL((SELECT SUM(pr.number_of_submissions) FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 14), 0) AS number_of_checkpoints_prizes |
| 19 | +, pr.top_checkpoint_prize |
| 20 | +, pr.prize1 |
| 21 | +, pr.prize2 |
| 22 | +, pr.prize3 |
| 23 | +, pr.prize4 |
| 24 | +, pr.prize5 |
| 25 | +, pr.prize6 |
| 26 | +, pr.prize7 |
| 27 | +, pr.prize8 |
| 28 | +, NVL(pp.registration_actual_start_time, pp.registration_scheduled_start_time) AS posting_date |
| 29 | +, NVL(pp.registration_actual_end_time, pp.registration_scheduled_end_time) AS registration_end_date |
| 30 | +, NVL(pp.checkpoint_actual_end_time , pp.checkpoint_scheduled_end_time) AS checkpoint_submission_end_date |
| 31 | +, NVL(pp.submission_actual_end_time, pp.submission_scheduled_end_time) AS submission_end_date |
| 32 | +, NVL(pp.appeals_scheduled_end_time, review.scheduled_end_time) AS appeals_end_date |
| 33 | +, NVL(pp.final_fix_actual_end_time, pp.final_fix_scheduled_end_time) AS final_fix_end_date |
| 34 | +, NVL(nd_phase.actual_end_time, nd_phase.scheduled_end_time) AS current_phase_end_date |
| 35 | +, (( nd_phase.scheduled_end_time - CURRENT)::interval second(9) to second)::char(10)::int8 AS current_phase_remaining_time |
| 36 | +, pstatus.name AS current_status |
| 37 | +, CASE WHEN (nd_phase.scheduled_end_time IS NOT NULL) THEN |
| 38 | + (SELECT phase_type_lu.description FROM phase_type_lu |
| 39 | + WHERE phase_type_id = nd_phase.phase_type_id) |
| 40 | + ELSE NULL |
| 41 | + END AS current_phase_name |
| 42 | +, CASE WHEN pi.digital_run_flag = 'On' THEN NVL(pi.digital_run_points, pi.payments) |
| 43 | + ELSE NULL |
| 44 | + END AS digital_run_points |
| 45 | +, NVL((SELECT max(event_id) FROM contest_project_xref x, contest c WHERE project_id = p.project_id AND c.contest_id = x.contest_id), 0) AS event_id |
| 46 | +, (SELECT event_short_desc FROM event e WHERE e.event_id = nvl((SELECT max(event_id) FROM contest_project_xref x, contest c WHERE project_id = p.project_id AND c.contest_id = x.contest_id), 0)) AS event_name |
| 47 | +, technology_list(p.project_id) AS technology |
| 48 | +, platform_list(p.project_id) AS platforms |
| 49 | +FROM project p |
| 50 | +LEFT JOIN ( |
| 51 | + SELECT |
| 52 | + project_id |
| 53 | + , MAX(CASE WHEN prize_type_id = 14 AND place = 1 THEN prize_amount ELSE NULL END) AS top_checkpoint_prize |
| 54 | + , MAX(CASE WHEN prize_type_id = 15 AND place = 1 THEN prize_amount ELSE NULL END) AS prize1 |
| 55 | + , MAX(CASE WHEN prize_type_id = 15 AND place = 2 THEN prize_amount ELSE NULL END) AS prize2 |
| 56 | + , MAX(CASE WHEN prize_type_id = 15 AND place = 3 THEN prize_amount ELSE NULL END) AS prize3 |
| 57 | + , MAX(CASE WHEN prize_type_id = 15 AND place = 4 THEN prize_amount ELSE NULL END) AS prize4 |
| 58 | + , MAX(CASE WHEN prize_type_id = 15 AND place = 5 THEN prize_amount ELSE NULL END) AS prize5 |
| 59 | + , MAX(CASE WHEN prize_type_id = 15 AND place = 6 THEN prize_amount ELSE NULL END) AS prize6 |
| 60 | + , MAX(CASE WHEN prize_type_id = 15 AND place = 7 THEN prize_amount ELSE NULL END) AS prize7 |
| 61 | + , MAX(CASE WHEN prize_type_id = 15 AND place = 8 THEN prize_amount ELSE NULL END) AS prize8 |
| 62 | + FROM prize |
| 63 | + WHERE prize_type_id IN (14, 15) |
| 64 | + GROUP BY project_id |
| 65 | +) pr ON pr.project_id = p.project_id |
| 66 | +INNER JOIN ( |
| 67 | + SELECT |
| 68 | + project_id |
| 69 | + , MAX(DECODE(phase_type_id, 1, actual_end_time, NULL)) AS registration_actual_end_time |
| 70 | + , MAX(DECODE(phase_type_id, 1, scheduled_end_time, NULL)) AS registration_scheduled_end_time |
| 71 | + , MAX(DECODE(phase_type_id, 1, scheduled_start_time, NULL)) AS registration_scheduled_start_time |
| 72 | + , MAX(DECODE(phase_type_id, 1, actual_start_time, NULL)) AS registration_actual_start_time |
| 73 | + , MAX(DECODE(phase_type_id, 2, actual_end_time, NULL)) AS submission_actual_end_time |
| 74 | + , MAX(DECODE(phase_type_id, 2, scheduled_end_time, NULL)) AS submission_scheduled_end_time |
| 75 | + , MAX(DECODE(phase_type_id, 6, scheduled_end_time, NULL)) AS appeals_scheduled_end_time |
| 76 | + , MAX(DECODE(phase_type_id, 9, actual_end_time, NULL)) AS final_fix_actual_end_time |
| 77 | + , MAX(DECODE(phase_type_id, 9, scheduled_end_time, NULL)) AS final_fix_scheduled_end_time |
| 78 | + , MAX(DECODE(phase_type_id, 15, actual_end_time, NULL)) AS checkpoint_actual_end_time |
| 79 | + , MAX(DECODE(phase_type_id, 15, scheduled_end_time, NULL)) AS checkpoint_scheduled_end_time |
| 80 | + FROM project_phase |
| 81 | + WHERE phase_type_id IN (1,2,6,9,15) |
| 82 | + GROUP BY project_id |
| 83 | +) pp ON pp.project_id = p.project_id |
| 84 | +INNER JOIN ( |
| 85 | + SELECT |
| 86 | + project_id |
| 87 | + , MAX(DECODE(project_info_type_id, 4, value, '')) AS forum_id |
| 88 | + , MAX(DECODE(project_info_type_id, 16, value, '')) AS payments |
| 89 | + , MAX(DECODE(project_info_type_id, 26, value, '')) AS digital_run_flag |
| 90 | + , MAX(DECODE(project_info_type_id, 30, value, '')) AS digital_run_points |
| 91 | + , MAX(DECODE(project_info_type_id, 70, value, '')) AS cmc_task_id |
| 92 | + , MAX(DECODE(project_info_type_id, 6, value, '')) AS challenge_name |
| 93 | + FROM project_info |
| 94 | + WHERE project_info_type_id IN (70, 30, 16, 26, 4, 6) |
| 95 | + GROUP BY project_id |
| 96 | +) pi ON pi.project_id = p.project_id |
| 97 | +LEFT OUTER JOIN ( |
| 98 | + SELECT |
| 99 | + pp3.project_id |
| 100 | + , pc3.parameter |
| 101 | + FROM project_phase pp3 |
| 102 | + LEFT OUTER JOIN phase_criteria pc3 ON pp3.project_phase_id = pc3.project_phase_id |
| 103 | + WHERE pp3.phase_type_id = 3 |
| 104 | + AND pc3.phase_criteria_type_id = 1 |
| 105 | +) screening ON screening.project_id = p.project_id |
| 106 | +LEFT OUTER JOIN ( |
| 107 | + SELECT |
| 108 | + pp4.project_id |
| 109 | + , pc4.parameter |
| 110 | + , pp4.scheduled_end_time |
| 111 | + FROM project_phase pp4 |
| 112 | + LEFT OUTER JOIN phase_criteria pc4 ON pp4.project_phase_id = pc4.project_phase_id |
| 113 | + WHERE pp4.phase_type_id = 4 |
| 114 | + AND pc4.phase_criteria_type_id = 1 |
| 115 | +) review ON review.project_id = p.project_id |
| 116 | +INNER JOIN project_phase pp1 ON pp1.project_id = p.project_id AND pp1.phase_type_id = 1 |
| 117 | +INNER JOIN project_status_lu pstatus ON p.project_status_id = pstatus.project_status_id |
| 118 | +LEFT OUTER JOIN project_phase nd_phase ON p.project_Id = nd_phase.project_id |
| 119 | +, project_category_lu pcl |
| 120 | +WHERE 1=1 |
| 121 | +AND p.project_category_id = pcl.project_category_id |
| 122 | +-- Filter out the challenge that user is not belong to. |
| 123 | +AND p.project_id IN (SELECT |
| 124 | + contest_id |
| 125 | + FROM contest_eligibility ce |
| 126 | + , group_contest_eligibility gce |
| 127 | + WHERE ce.contest_eligibility_id = gce.contest_eligibility_id |
| 128 | + AND gce.group_id = @communityId@) |
| 129 | +AND pcl.project_category_id NOT IN (27, 37) --exclude when spec review was a 'contest.' Also exclude MM, which is in there as a 'software' contest. |
| 130 | +AND p.project_status_id IN (@project_status_id@) |
| 131 | +AND pcl.project_type_id IN (@project_type_id@) |
| 132 | +AND pp1.phase_status_id IN (@registration_phase_status@) |
| 133 | +AND nd_phase.project_phase_id = (SELECT MAX(project_phase_id) FROM project_phase WHERE project_id = p.project_id AND phase_status_id = 2 AND phase_type_id IN (1,2,3,4,5,6,7,8,9,10,11,12)) |
| 134 | + |
| 135 | +AND NVL(pp.submission_actual_end_time, pp.submission_scheduled_end_time) BETWEEN TO_DATE('@submissionEndFrom@ 00:00:00', '%Y-%m-%d %H:%M:%S') AND TO_DATE('@submissionEndTo@ 23:59:59', '%Y-%m-%d %H:%M:%S') |
| 136 | +AND LOWER(pcl.description) = DECODE('@categoryName@', '', LOWER(pcl.description), '@categoryName@') |
| 137 | +AND LOWER(pi.challenge_name) LIKE ('@challengeName@') |
| 138 | +AND NVL(pr.prize1, 0) >= @prilower@ |
| 139 | +AND NVL(pr.prize1, 0) <= @priupper@ |
| 140 | +AND p.tc_direct_project_id = DECODE(@tcdirectid@, 0, p.tc_direct_project_id, @tcdirectid@) |
| 141 | +AND NVL(LOWER(pi.cmc_task_id), '') = DECODE('@cmc@', '', NVL(LOWER(pi.cmc_task_id), ''), '@cmc@') |
113 | 142 |
|
114 |
| - AND LOWER(pcl.description) = DECODE('@categoryName@', '', LOWER(pcl.description), '@categoryName@') |
115 |
| - AND LOWER(pn.value) LIKE ('@challengeName@') |
116 |
| - AND NVL((SELECT pr.prize_amount FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 15 AND pr.place = 1), 0) >= @prilower@ |
117 |
| - AND NVL((SELECT pr.prize_amount FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 15 AND pr.place = 1), 0) <= @priupper@ |
118 |
| - AND p.tc_direct_project_id = DECODE(@tcdirectid@, 0, p.tc_direct_project_id, @tcdirectid@) |
119 |
| - AND NVL(LOWER((select value from project_info pi70 where pi70.project_id = p.project_id and project_info_type_id = 70)), '') = DECODE('@cmc@', '', NVL(LOWER((select value from project_info pi70 where pi70.project_id = p.project_id and project_info_type_id = 70)), ''), '@cmc@') |
120 | 143 | ORDER BY @sortColumn@ @sortOrder@
|
0 commit comments