日期:2014-05-17  浏览次数:20493 次

求教SQL语句
比如我现在有一张请假表,一张公出表,一张课程表。当一个老师请假或者公出,要相应列出他在请假或公出这段时间的上课节次。比如12点之前的算作是上午,之后算下午。目前如果老师请假是1天之内,直接就根据请假时间如果小于12,就显示上午的上课节次了(好进行代课安排)如果大于12,就显示下午的。但是如果他请假超过1天的,这个要怎么处理啊?不知道SQL中要怎么写?不知道我有没表达清楚?如果有高手明白的话,请指点!

------解决方案--------------------
select * from 课程表
where 老师ID=老师ID and 上课的起始时间>=请假起始时间 and 上课的结束时间 <=请假的结束时间

具体情况,比如说你请假的那些字段,什么12点请假算上午的需要你提供详细字段

其实也就是 case when 的用法


------解决方案--------------------
在请假时,查询这位老师的带课时数,应该按照开始请假时间到结束请假时间两个字段查询,把这位老师因请假所缺的课时,用其他老师的课时来补上,就可以了。这样当请假为几天这样的周期,也可以解决了。在这个时间段内,所有所了下的课时,都可以用其他老师来补上。在区分上午或者下午时,在参数中的时间段都以24小时制,这样就好区分了吧。