筛选过程:
1、刚开始是预选,大家随便都可以选,不受选课人数限制。
2、进行筛选,管理系统--选课管理--选课名单处理--根据目前设定的限选门次自动筛选。(如果进行了一次筛选了,只是对超过教室人数的某几门课,进行筛选,刚选第2个,)
现在用这个存储过程pr_xkmd_zdsx进行筛选,筛选之前要先将每个年级的选课门数改过来,因为初选时每个年级都是可以选2门,筛选时改成低年级1门。
3、如果选修人数较少,少于20人的,刚停开,先在课表管理中,限选人数设为0,教室改为停开,然后在管理系统中--选课名单维护,将这些课程选的学生,手动的退掉。
4、根据预选人数,给每门课程增加上课教室,增加时应注意,这个教室不会冲突,即不会跟正常上课冲突,跟借用冲突。
5、有时会有这样的问题,学生做了学籍变动,转专业,从白云转到武进,那么他原来的选课就应该删除掉。公选开课课程放在gxkbk这个表中,由于每个学期都开差不多的课程,所以唯一区别是kcxh这个字段。学生选课信息放在xkmd这个表中。
需要注意的是,xkmd这个表中,bj和bh这些字段是学籍变动之前的信息,所以要想查出哪些学生是跨校区选课,则需要用学生的学号查到当前学生所在的班级的班号(fn_xsxh_bh),再能过班号查找班能的所属校区,然后判断班级的所属校区和选的课程的限选校区的关系,如果一致,则是跨校区选课,需要退选。
具体语句为select md.*,kbk.xxbmmc from xkmd md,gxkbk kbk
where md.xq='10-11-1' and md.kcxh=kbk.kcxh and
kbk.xq='10-11-1'
and
rtrim(kbk.xxbmmc)=rtrim(dbo.fn_bh_bmmc(dbo.fn_xsxh_bh(md.xh)))+','
and tx=0
如果是更新的话,因为涉及到多表的操作,则需要用到
select * from xkmd where idn in (select md.idn from xkmd md,gxkbk
kbk
where md.xq='10-11-1' and md.kcxh=kbk.kcxh and
kbk.xq='10-11-1'
and
rtrim(kbk.xxbmmc)=rtrim(dbo.fn_bh_bmmc(dbo.fn_xsxh_bh(md.xh)))+','
and tx=0 )
来检查是不是这些学生,
然后进行更新表,进行退选。
update
xkmd set tx=1 where idn in (select md.idn from
xkmd md,gxkbk kbk
where
md.xq='10-11-1' and md.kcxh=kbk.kcxh and kbk.xq='10-11-1'
and
rtrim(kbk.xxbmmc)=rtrim(dbo.fn_bh_bmmc(dbo.fn_xsxh_bh(md.xh)))+','
and tx=0 )
加载中,请稍候......