学校每次考试要按上次考试成绩从高到低排列,学生按这个排列安排试室及座位。但每次考试都有学生缺考或有新转学进来的学生,这部份学生不会出现在上面的成绩排列中。
这段SQL代码就是找出这些学生,做相应处理。
相关表:
ClassList 学生编班表
字段意义 | 字段名称 |
学年 | ClassYear |
年级 | Grade |
班别 | Class |
学生编号 | LearnNo |
...... | ...... |
TestSeatList 考试座位安排表
字段意义 | 字段名称 |
考试编号 | TestNo |
年级 | Grade |
试室号 | Room |
座位号 | Seat |
学生编号 | LearnNo |
...... | ...... |
上面两个表通过LearnNo相关联,因为学生编号只有9位,而考试答题卡是10位的,所以TestSeatList中的LearnNO是在ClassList的LearnNo前面补"0"的,这里要用Substring把它截出来。
- select * from ClassList
- where ClassYear=2008 And Grade=2 And LearnNo not in(select Substring(LearnNo,2,9) from TestSeatList Where TestNO=200810 And Grade=2)
- Order by learnno