33 lines
2.0 KiB
Batchfile
33 lines
2.0 KiB
Batchfile
@echo off
|
|
chcp 65001 >nul
|
|
echo ========================================
|
|
echo 课程分配统计报告
|
|
echo ========================================
|
|
echo 生成时间: %date% %time%
|
|
echo.
|
|
|
|
echo [统计1] 各班级的学生分布(按监区)
|
|
echo ----------------------------------------
|
|
mysql -u root -proot -e "USE study; SELECT c.class_name AS 班级, u.prison_area AS 监区, COUNT(*) AS 学生数 FROM student_class sc INNER JOIN sys_user u ON sc.student_id = u.user_id INNER JOIN class c ON sc.class_id = c.id WHERE sc.status = 1 AND u.del_flag = '0' GROUP BY c.class_name, u.prison_area ORDER BY c.class_name, u.prison_area;"
|
|
echo.
|
|
|
|
echo [统计2] 各监区的班级分布
|
|
echo ----------------------------------------
|
|
mysql -u root -proot -e "USE study; SELECT u.prison_area AS 监区, COUNT(DISTINCT sc.class_id) AS 班级数, COUNT(*) AS 学生总数, COUNT(DISTINCT u.user_id) AS 学生人数 FROM student_class sc INNER JOIN sys_user u ON sc.student_id = u.user_id WHERE sc.status = 1 AND u.del_flag = '0' GROUP BY u.prison_area ORDER BY u.prison_area;"
|
|
echo.
|
|
|
|
echo [统计3] 班级规模统计
|
|
echo ----------------------------------------
|
|
mysql -u root -proot -e "USE study; SELECT c.class_name AS 班级名称, COUNT(*) AS 学生数, MIN(sc.join_time) AS 最早加入时间, MAX(sc.join_time) AS 最近加入时间 FROM student_class sc INNER JOIN class c ON sc.class_id = c.id INNER JOIN sys_user u ON sc.student_id = u.user_id WHERE sc.status = 1 AND u.del_flag = '0' GROUP BY c.class_name ORDER BY 学生数 DESC;"
|
|
echo.
|
|
|
|
echo [统计4] 未分配班级的学生
|
|
echo ----------------------------------------
|
|
mysql -u root -proot -e "USE study; SELECT u.user_id, u.nick_name AS 姓名, u.prison_area AS 监区, u.student_status AS 状态 FROM sys_user u WHERE u.register_type = 'student' AND u.del_flag = '0' AND NOT EXISTS (SELECT 1 FROM student_class sc WHERE sc.student_id = u.user_id AND sc.status = 1) LIMIT 20;"
|
|
echo.
|
|
|
|
echo ========================================
|
|
echo 统计完成
|
|
echo ========================================
|
|
pause
|