思路:
case 上课时间/7 (周数) 上课时间%5 表示在一天中的时间段
when 1 then 周一=上课时间%5+1 +'-'+ 上课时间%5+2
when 2 then 周一=上课时间%5+1 +'-'+ 上课时间%5+2
...
end但是不知道具体怎么写。我是想写到sqldataAdapter中的selectCommand中。望高手帮忙!
case 上课时间/7 (周数) 上课时间%5 表示在一天中的时间段
when 1 then 周一=上课时间%5+1 +'-'+ 上课时间%5+2
when 2 then 周一=上课时间%5+1 +'-'+ 上课时间%5+2
...
end但是不知道具体怎么写。我是想写到sqldataAdapter中的selectCommand中。望高手帮忙!
教师信息.教师姓名, 课程表.课序号, 课程表.课程编号, 课程表.上课时间,
课程表.教师编号, 课程表.教室号, 课程表.班级编号
FROM 课程表 INNER JOIN
班级信息 ON 课程表.班级编号 = 班级信息.班级编号 INNER JOIN
教师信息 ON 课程表.教师编号 = 教师信息.教师编号 INNER JOIN
课程信息 ON 课程表.课程编号 = 课程信息.课程编号这是现在的查询语句,问题是周一、周二、...周日这几个字段怎么添加赋值,,
教师信息.教师姓名, 课程表.课序号, 课程表.课程编号, 课程表.上课时间,
课程表.教师编号, 课程表.教室号, 课程表.班级编号
FROM 课程表 INNER JOIN
班级信息 ON 课程表.班级编号 = 班级信息.班级编号 INNER JOIN
教师信息 ON 课程表.教师编号 = 教师信息.教师编号 INNER JOIN
课程信息 ON 课程表.课程编号 = 课程信息.课程编号这是现在的查询语句,问题是周一、周二、...周日这几个字段怎么添加赋值,,
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 周日
--上面的上课时间 / 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
*/