guoyu/统计课程分配情况.bat
2025-12-11 23:28:07 +08:00

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