首页 新闻 会员 周边 捐助

大鸟们来帮忙看下

0
悬赏园豆:50 [已关闭问题]

各位大侠 ,小弟现在遇见一个这样的问题

建立了一个存储过程,参数是课程ID的集合

首先我以逗号分隔课程ID的集合 ,同时去关联课程表,得到一个小的课程表(也就是根据传进来的参数得到的)

我现在想做的事情是 ,去从课程表(总的课程表)查找出 教室ID 一样的,并且上课时间一样的,还有就是开课和下课时间不冲突的,并且课程ID 不等于小的课程表里的ID

总的功能也就是判断排课时有没有教室冲突 ,我以前的做法是一次传进来一个课程ID ,去查库,这样就得查找几百次或者上千次,我现在想用一个查询实现 ,代码如下:

declare @ids varchar(5000)   --课程ID集合
set @ids = '1880378,1880382,1880386,

        declare @Lessons table 
 (
    nLessonID    int
  
 )

insert into @Lessons
select * from Split(@ids)

 

 select P.*,'教室冲突' as CollidedType from
  (
      select B.*  from @Lessons  A left join  bs_lesson as  B
            on A.nLessonID = B.id
  ) T
  INNER join    bs_lesson  P
  on  T.dtDate = P.dtDate
   and T.sRoomCode = P.sRoomCode
   and T.id <> P.id              -- 不判断自身,允许覆盖(允许重排)
   and P.sRoomCode is not null and P.sRoomCode <> ''
   and not (P.SectBegin >= T.SectEnd or P.SectEnd <= T.SectBegin )

但是现在查询出来的结果总是有出入 ,请大侠们帮忙看看 我这里写的有什么问题 ,如果有其他好的方法的话,也请赐教下,先再这里谢过了

小小小浩的主页 小小小浩 | 初学一级 | 园豆:140
提问于:2010-07-19 17:10
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册