朋友们一定用过课程表吧
假如课程表如下
节次\星期 星期一 星期二 星期三 星期四 星期五第一节 课程名/教师(下同)第二节第三节第四节数据库结构(简化)
表c
课程号(主键) 课程名 教师 上课星期 上课节次
在设计程序的时候,比如asp,在相应位置可以查询,比如select 课程名,教师名 from c where 上课星期='星期?' and 上课节次='第?节' 这样可以查出来,但是对于server来说有点累,要查询5*4=20次朋友们有没有好的方法一次查询出来,sql也好,程序思想也好.....一切方法都好~~^_^ 希望大家指点~
thanks~!!
假如课程表如下
节次\星期 星期一 星期二 星期三 星期四 星期五第一节 课程名/教师(下同)第二节第三节第四节数据库结构(简化)
表c
课程号(主键) 课程名 教师 上课星期 上课节次
在设计程序的时候,比如asp,在相应位置可以查询,比如select 课程名,教师名 from c where 上课星期='星期?' and 上课节次='第?节' 这样可以查出来,但是对于server来说有点累,要查询5*4=20次朋友们有没有好的方法一次查询出来,sql也好,程序思想也好.....一切方法都好~~^_^ 希望大家指点~
thanks~!!
------------------------------------------------
要查询5*4=20次 这句话要更正一下针对你写的SQL语句,查询时主要受表记录数的影响!
对每条记录SERVER都会扫描,针对单条记录会作条件判断!
然后列出符合条件的记录
上课节次 as [节次\星期],
max(case when 上课星期='星期一' then rtrim(课程名)+'/'+rtrim(教师) end) as [星期一],
max(case when 上课星期='星期二' then rtrim(课程名)+'/'+rtrim(教师) end) as [星期二],
max(case when 上课星期='星期三' then rtrim(课程名)+'/'+rtrim(教师) end) as [星期三],
max(case when 上课星期='星期四' then rtrim(课程名)+'/'+rtrim(教师) end) as [星期四],
max(case when 上课星期='星期五' then rtrim(课程名)+'/'+rtrim(教师) end) as [星期五]
from c
group by 上课节次