思路:
  case 上课时间/7    (周数)    上课时间%5 表示在一天中的时间段
  when  1 then 周一=上课时间%5+1 +'-'+ 上课时间%5+2
  when  2 then  周一=上课时间%5+1 +'-'+ 上课时间%5+2
  ...
  end但是不知道具体怎么写。我是想写到sqldataAdapter中的selectCommand中。望高手帮忙!

解决方案 »

  1.   

    SELECT 班级信息.年级, 班级信息.班级名称, 课程信息.课程名称, 课程信息.课程类别, 
          教师信息.教师姓名, 课程表.课序号, 课程表.课程编号, 课程表.上课时间, 
          课程表.教师编号, 课程表.教室号, 课程表.班级编号
    FROM 课程表 INNER JOIN
          班级信息 ON 课程表.班级编号 = 班级信息.班级编号 INNER JOIN
          教师信息 ON 课程表.教师编号 = 教师信息.教师编号 INNER JOIN
          课程信息 ON 课程表.课程编号 = 课程信息.课程编号这是现在的查询语句,问题是周一、周二、...周日这几个字段怎么添加赋值,,
      

  2.   

    SELECT 班级信息.年级, 班级信息.班级名称, 课程信息.课程名称, 课程信息.课程类别, 
          教师信息.教师姓名, 课程表.课序号, 课程表.课程编号, 课程表.上课时间, 
          课程表.教师编号, 课程表.教室号, 课程表.班级编号
    FROM 课程表 INNER JOIN
          班级信息 ON 课程表.班级编号 = 班级信息.班级编号 INNER JOIN
          教师信息 ON 课程表.教师编号 = 教师信息.教师编号 INNER JOIN
          课程信息 ON 课程表.课程编号 = 课程信息.课程编号这是现在的查询语句,问题是周一、周二、...周日这几个字段怎么添加赋值,,
      

  3.   

    已解决!  期待有更好的办法!!!!!!!!!!!
          CASE 上课时间 / 7 WHEN 1 THEN CONVERT(varchar(5), 上课时间 % 5 + 1) 
          + '-' + CONVERT(varchar(5), 上课时间 % 5 + 2) ELSE NULL END AS 周一, 
          CASE 上课时间 / 7 WHEN 2 THEN CONVERT(varchar(5), 上课时间 % 5 + 1) 
          + '-' + CONVERT(varchar(5), 上课时间 % 5 + 2) ELSE NULL END AS 周二, 
          CASE 上课时间 / 7 WHEN 3 THEN CONVERT(varchar(5), 上课时间 % 5 + 1) 
          + '-' + CONVERT(varchar(5), 上课时间 % 5 + 2) ELSE NULL END AS 周三, 
          CASE 上课时间 / 7 WHEN 4 THEN CONVERT(varchar(5), 上课时间 % 5 + 1) 
          + '-' + CONVERT(varchar(5), 上课时间 % 5 + 2) ELSE NULL END AS 周四, 
          CASE 上课时间 / 7 WHEN 5 THEN CONVERT(varchar(5), 上课时间 % 5 + 1) 
          + '-' + CONVERT(varchar(5), 上课时间 % 5 + 2) ELSE NULL END AS 周五, 
          CASE 上课时间 / 7 WHEN 6 THEN CONVERT(varchar(5), 上课时间 % 5 + 1) 
          + '-' + CONVERT(varchar(5), 上课时间 % 5 + 2) ELSE NULL END AS 周六, 
          CASE 上课时间 / 7 WHEN 7 THEN CONVERT(varchar(5), 上课时间 % 5 + 1) 
          + '-' + CONVERT(varchar(5), 上课时间 % 5 + 2) ELSE NULL END AS 周日
      

  4.   


    --上面的上课时间 / 7=0的情况没考虑
    create table 课程表 (课序号 varchar(7),课程编号 varchar(4),班级编号 varchar(9),教师编号 varchar(5),教室编号 varchar(4),上课时间 int)
    insert into 课程表
    select '2007001','1001','200521301','20120','1302',1 union all
    select '2007001','1001','200521301','20120','1302',5 union all
    select '2007001','1001','200521301','20120','1302',15 union all
    select '2007001','1002','200521301','20120','1302',18 union all
    select '2007001','1002','200521301','20120','1302',30 union all
    select '2007001','1002','200521301','20120','1302',35 create table 上课时间(上课时间 int,周 varchar(4),课 varchar(6)) --楼主的上课时间的规律是什么?下面建的表数据不对,楼主可以自己输入对应的值
    declare @i int
    set @i=0
    while @i<36
    begin
    insert into 上课时间
    select @i,'周'+cast(@i/7+1 as char(1)),cast(@i%5+1 as char(1))+'-'+cast(@i%5+2  as char(1))
    set @i = @i + 1 
    end--select * from 上课时间declare @sql varchar(8000)set @sql = 'select 课序号, 课程编号, a.上课时间,教师编号, 教室编号, 班级编号 '
    select @sql = @sql + ' , (case 周 when ''' + 周 + ''' then 课 end) [' + 周 + ']'
    from (select distinct 周 from 上课时间) as a
    set @sql = @sql + ' from 课程表 a inner join 上课时间 b on a.上课时间=b.上课时间'exec(@sql)/*
    课序号     课程编号 上课时间        教师编号  教室编号 班级编号      周1     周2     周3     周4     周5     周6     
    ------- ---- ----------- ----- ---- --------- ------ ------ ------ ------ ------ ------ 
    2007001 1001 1           20120 1302 200521301 2-3    NULL   NULL   NULL   NULL   NULL
    2007001 1001 5           20120 1302 200521301 1-2    NULL   NULL   NULL   NULL   NULL
    2007001 1001 15          20120 1302 200521301 NULL   NULL   1-2    NULL   NULL   NULL
    2007001 1002 18          20120 1302 200521301 NULL   NULL   4-5    NULL   NULL   NULL
    2007001 1002 30          20120 1302 200521301 NULL   NULL   NULL   NULL   1-2    NULL
    2007001 1002 35          20120 1302 200521301 NULL   NULL   NULL   NULL   NULL   1-2
    */
      

  5.   

    我这个是填充到dataset中用来做报表,要是想实现分组有必要在SQL中分组么,还是在报表中操作?我用的是reporting sevice 具体怎么完成分组的操作望高手指点!!
      

  6.   

    关于报表分组问题会在.net版中另开帖!
      

  7.   

    问题已解决!用报表中的分组就可解决。时间转换是用sql来完成的。