(SELECT GROUP_CONCAT(student_name ORDER BY FIND_IN_SET(student_id,c.team_students_ids)) FROM student WHERE FIND_IN_SET(student_id,c.team_students_ids) ) team_student_names,
(SELECT GROUP_CONCAT(students_id ORDER BY students_id) FROM competition_students WHERE team_flag = cs.team_flag AND is_captain = 2 ) team_students_ids -- 队员IDs
FROM competition_students cs
LEFT JOIN competition c ON c.competition_id = cs.competition_id
WHERE c.competition_id = #competitionId# AND cs.is_captain = 1
LEFT JOIN universities_colleges_jurisdiction_experimental_system c ON c.universities_colleges_id = b.universities_colleges_id AND c.type = 1 AND c.use_type != 0
LEFT JOIN resources_application d ON d.resources_application_id = c.type_id
AND find_in_set(t.student_id,IFNULL((SELECT GROUP_CONCAT(students_id) FROM competition_students WHERE competition_id = #competitionId# and case when (select competition_type from competition where competition_id = #competitionId#) = 2 then is_captain = 1 else 1=1 end),"-1"))
(SELECT GROUP_CONCAT(student_name ORDER BY FIND_IN_SET(student_id,c.team_students_ids)) FROM student WHERE FIND_IN_SET(student_id,c.team_students_ids) ) team_student_names,
(SELECT GROUP_CONCAT(students_id ORDER BY students_id) FROM competition_students WHERE team_flag = cs.team_flag AND is_captain = 2 ) team_students_ids -- 队员IDs
FROM competition_students cs
LEFT JOIN competition c ON c.competition_id = cs.competition_id
WHERE c.competition_id = #competitionId# AND cs.is_captain = 1
AND find_in_set(t.student_id,IFNULL((SELECT GROUP_CONCAT(students_id) FROM competition_students WHERE competition_id = #competitionId# and case when (select competition_type from competition where competition_id = #competitionId#) = 2 then is_captain = 1 else 1=1 end),"-1"))
MAX(LENGTH((SELECT GROUP_CONCAT(student_name ORDER BY FIND_IN_SET(student_id,c.team_students_ids) SEPARATOR ' / ') FROM student WHERE FIND_IN_SET(student_id,c.team_students_ids)))) team_student_names,
(SELECT GROUP_CONCAT(students_id ORDER BY students_id) FROM competition_students WHERE team_flag = cs.team_flag AND is_captain = 2 ) team_students_ids -- 队员IDs
FROM competition_students cs
LEFT JOIN competition c ON c.competition_id = cs.competition_id
WHERE c.competition_id = #competitionId# AND cs.is_captain = 1
AND find_in_set(t.student_id,IFNULL((SELECT GROUP_CONCAT(students_id) FROM competition_students WHERE competition_id = #competitionId# and case when (select competition_type from competition where competition_id = #competitionId#) = 2 then is_captain = 1 else 1=1 end),"-1"))
(SELECT GROUP_CONCAT(student_name ORDER BY FIND_IN_SET(student_id,c.team_students_ids) SEPARATOR ' / ') FROM student WHERE FIND_IN_SET(student_id,c.team_students_ids) ) team_student_names,
(SELECT GROUP_CONCAT(students_id ORDER BY students_id) FROM competition_students WHERE team_flag = cs.team_flag AND is_captain = 2 ) team_students_ids -- 队员IDs
FROM competition_students cs
LEFT JOIN competition c ON c.competition_id = cs.competition_id
WHERE c.competition_id = #competitionId# AND cs.is_captain = 1
AND find_in_set(t.student_id,IFNULL((SELECT GROUP_CONCAT(students_id) FROM competition_students WHERE competition_id = #competitionId# and case when (select competition_type from competition where competition_id = #competitionId#) = 2 then is_captain = 1 else 1=1 end),"-1"))
LEFT(SUBSTRING_INDEX(GROUP_CONCAT(t.last_login_time ORDER BY t.last_login_time DESC),',',1),19) last_login_time,
LEFT(SUBSTRING_INDEX(GROUP_CONCAT(t.last_operate_time ORDER BY t.last_operate_time DESC),',',1),19) last_operate_time,
SUBSTRING_INDEX(GROUP_CONCAT(t.IP ORDER BY t.last_login_time DESC),',',1) IP
FROM (
SELECT
t.student_id,
a.create_time last_login_time,
a1.create_time last_operate_time,
a.IP,
CASE WHEN a.params LIKE '%\\_ch%' THEN (SELECT TRIM(REPLACE(application_name,'子应用','')) FROM resources_application WHERE resources_application_id = 3) ELSE
CASE WHEN a.params LIKE '%\\_dsj%' THEN (SELECT TRIM(REPLACE(application_name,'子应用','')) FROM resources_application WHERE resources_application_id = 1) ELSE
CASE WHEN a.params LIKE '%\\_jr%' THEN (SELECT TRIM(REPLACE(application_name,'子应用','')) FROM resources_application WHERE resources_application_id = 2) ELSE
CASE WHEN a.params LIKE '%\\_sy%' THEN (SELECT TRIM(REPLACE(application_name,'子应用','')) FROM resources_application WHERE resources_application_id = 4) ELSE
CASE WHEN a.params LIKE '%\\_yx%' THEN (SELECT TRIM(REPLACE(application_name,'子应用','')) FROM resources_application WHERE resources_application_id = 5) END
END
END
END
END platform
FROM student t
LEFT JOIN (SELECT student_id,SUBSTRING_INDEX(GROUP_CONCAT(create_time ORDER BY create_time DESC),',',1) create_time,SUBSTRING_INDEX(GROUP_CONCAT(params ORDER BY create_time DESC),',',1) params,SUBSTRING_INDEX(GROUP_CONCAT(ip ORDER BY create_time DESC),',',1) ip FROM sys_log WHERE student_id > 0 AND request_url LIKE '%/api/student/indexInfo.do%' GROUP BY student_id) a ON a.student_id = t.student_id
LEFT JOIN (SELECT student_id,SUBSTRING_INDEX(GROUP_CONCAT(create_time ORDER BY create_time DESC),',',1) create_time FROM sys_log WHERE student_id > 0 GROUP BY student_id) a1 ON a1.student_id = t.student_id
SUM(CASE WHEN a.resources_question_id > 0 THEN CASE WHEN b.question_fraction = b.student_fraction THEN 1 ELSE 0 END ELSE 0 END) resources_question_right_num,
COUNT(CASE WHEN a.resources_question_id > 0 THEN b.student_question_log_id ELSE NULL END) resources_question_all_num,
SUM(CASE WHEN a.resources_competition_step_id > 0 THEN CASE WHEN b.question_fraction = b.student_fraction THEN 1 ELSE 0 END ELSE 0 END) resources_competition_step_right_num,
COUNT(CASE WHEN a.resources_competition_step_id > 0 THEN b.student_question_log_id ELSE NULL END)resources_competition_step_all_num,
SUM(CASE WHEN a.resources_training_step_id > 0 THEN CASE WHEN b.question_fraction = b.student_fraction THEN 1 ELSE 0 END ELSE 0 END) resources_training_step_right_num,
COUNT(CASE WHEN a.resources_training_step_id > 0 THEN b.student_question_log_id ELSE NULL END)resources_training_step_all_num
FROM student_question_log a
LEFT JOIN student_question_log_info b ON b.student_question_log_id = a.student_question_log_id
LEFT JOIN resources_competition_step c ON c.resources_competition_step_id = a.resources_competition_step_id
LEFT JOIN resources_training_step d ON d.resources_training_step_id = a.resources_training_step_id
LEFT JOIN student s ON s.student_id = a.student_id
SUM(CASE WHEN a.resources_question_id > 0 THEN CASE WHEN b.question_fraction = b.student_fraction THEN 1 ELSE 0 END ELSE 0 END) resources_question_right_num,
COUNT(CASE WHEN a.resources_question_id > 0 THEN b.student_question_log_id ELSE NULL END) resources_question_all_num,
SUM(CASE WHEN a.resources_competition_step_id > 0 THEN CASE WHEN b.question_fraction = b.student_fraction THEN 1 ELSE 0 END ELSE 0 END) resources_competition_step_right_num,
COUNT(CASE WHEN a.resources_competition_step_id > 0 THEN b.student_question_log_id ELSE NULL END)resources_competition_step_all_num,
SUM(CASE WHEN a.resources_training_step_id > 0 THEN CASE WHEN b.question_fraction = b.student_fraction THEN 1 ELSE 0 END ELSE 0 END) resources_training_step_right_num,
COUNT(CASE WHEN a.resources_training_step_id > 0 THEN b.student_question_log_id ELSE NULL END)resources_training_step_all_num
FROM
(
SELECT
t.*,
CASE WHEN t.resources_question_id > 0
THEN
(
SELECT a.course_info_id FROM resources_question a
WHERE a.resources_question_id = t.resources_question_id
)
ELSE
CASE WHEN t.resources_competition_step_id > 0
THEN
(
SELECT DISTINCT b.course_info_id FROM resources_competition_step a
LEFT JOIN resources_competition b ON b.resources_competition_id = a.resources_competition_id
WHERE a.resources_competition_step_id = t.resources_competition_step_id
)
ELSE
CASE WHEN t.resources_training_step_id > 0
THEN
(
SELECT DISTINCT b.course_info_id FROM resources_training_step a
LEFT JOIN resources_training b ON b.resources_training_id = a.resources_training_id
WHERE a.resources_training_step_id = t.resources_training_step_id
)
ELSE NULL
END
END
END course_info_id
from student_question_log t
WHERE student_id = #studentId#
)a
LEFT JOIN student_question_log_info b ON b.student_question_log_id = a.student_question_log_id
LEFT JOIN resources_competition_step c ON c.resources_competition_step_id = a.resources_competition_step_id
LEFT JOIN resources_training_step d ON d.resources_training_step_id = a.resources_training_step_id
SUM(CASE WHEN a.resources_question_id > 0 THEN CASE WHEN b.question_fraction = b.student_fraction THEN 1 ELSE 0 END ELSE 0 END) resources_question_right_num,
COUNT(CASE WHEN a.resources_question_id > 0 THEN b.student_question_log_id ELSE NULL END) resources_question_all_num,
SUM(CASE WHEN a.resources_competition_step_id > 0 THEN CASE WHEN b.question_fraction = b.student_fraction THEN 1 ELSE 0 END ELSE 0 END) resources_competition_step_right_num,
COUNT(CASE WHEN a.resources_competition_step_id > 0 THEN b.student_question_log_id ELSE NULL END)resources_competition_step_all_num,
SUM(CASE WHEN a.resources_training_step_id > 0 THEN CASE WHEN b.question_fraction = b.student_fraction THEN 1 ELSE 0 END ELSE 0 END) resources_training_step_right_num,
COUNT(CASE WHEN a.resources_training_step_id > 0 THEN b.student_question_log_id ELSE NULL END)resources_training_step_all_num
FROM
(
SELECT
t.*,
CASE WHEN t.resources_question_id > 0
THEN
(
SELECT a.course_info_id FROM resources_question a
WHERE a.resources_question_id = t.resources_question_id
)
ELSE
CASE WHEN t.resources_competition_step_id > 0
THEN
(
SELECT DISTINCT b.course_info_id FROM resources_competition_step a
LEFT JOIN resources_competition b ON b.resources_competition_id = a.resources_competition_id
WHERE a.resources_competition_step_id = t.resources_competition_step_id
)
ELSE
CASE WHEN t.resources_training_step_id > 0
THEN
(
SELECT DISTINCT b.course_info_id FROM resources_training_step a
LEFT JOIN resources_training b ON b.resources_training_id = a.resources_training_id
WHERE a.resources_training_step_id = t.resources_training_step_id
)
ELSE NULL
END
END
END course_info_id
FROM student_question_log t
LEFT JOIN student s ON s.student_id = t.student_id
WHERE 1=1
)a
LEFT JOIN student_question_log_info b ON b.student_question_log_id = a.student_question_log_id
LEFT JOIN resources_competition_step c ON c.resources_competition_step_id = a.resources_competition_step_id
LEFT JOIN resources_training_step d ON d.resources_training_step_id = a.resources_training_step_id
LEFT JOIN student s ON s.student_id = a.student_id
SUM(CASE WHEN a.resources_question_id > 0 THEN CASE WHEN b.question_fraction = b.student_fraction THEN 1 ELSE 0 END ELSE 0 END) resources_question_right_num,
COUNT(CASE WHEN a.resources_question_id > 0 THEN b.student_question_log_id ELSE NULL END) resources_question_all_num,
SUM(CASE WHEN a.resources_competition_step_id > 0 THEN CASE WHEN b.question_fraction = b.student_fraction THEN 1 ELSE 0 END ELSE 0 END) resources_competition_step_right_num,
COUNT(CASE WHEN a.resources_competition_step_id > 0 THEN b.student_question_log_id ELSE NULL END)resources_competition_step_all_num,
SUM(CASE WHEN a.resources_training_step_id > 0 THEN CASE WHEN b.question_fraction = b.student_fraction THEN 1 ELSE 0 END ELSE 0 END) resources_training_step_right_num,
COUNT(CASE WHEN a.resources_training_step_id > 0 THEN b.student_question_log_id ELSE NULL END)resources_training_step_all_num
FROM
(
SELECT
t.*,
CASE WHEN t.resources_question_id > 0
THEN
(
SELECT a.course_info_id FROM resources_question a
WHERE a.resources_question_id = t.resources_question_id
)
ELSE
CASE WHEN t.resources_competition_step_id > 0
THEN
(
SELECT DISTINCT b.course_info_id FROM resources_competition_step a
LEFT JOIN resources_competition b ON b.resources_competition_id = a.resources_competition_id
WHERE a.resources_competition_step_id = t.resources_competition_step_id
)
ELSE
CASE WHEN t.resources_training_step_id > 0
THEN
(
SELECT DISTINCT b.course_info_id FROM resources_training_step a
LEFT JOIN resources_training b ON b.resources_training_id = a.resources_training_id
WHERE a.resources_training_step_id = t.resources_training_step_id
)
ELSE NULL
END
END
END course_info_id
FROM student_question_log t
LEFT JOIN student s ON s.student_id = t.student_id
WHERE 1=1
)a
LEFT JOIN student_question_log_info b ON b.student_question_log_id = a.student_question_log_id
LEFT JOIN resources_competition_step c ON c.resources_competition_step_id = a.resources_competition_step_id
LEFT JOIN resources_training_step d ON d.resources_training_step_id = a.resources_training_step_id
LEFT JOIN student s ON s.student_id = a.student_id