已知2表:
subject_teacher:
年度 年级 班级 科目 教师
2007 初一 1班 语文 张三
2007 初一 1班 数学 李四
2007 初一 2班 语文 张三
2007 初一 2班 数学 王五
...
subject_paike:
年度 年级 班级 星期 节次 科目
2007 初一 1班 星期一 1 语文
2007 初一 1班 星期一 2 语文
2007 初一 2班 星期三 1 语文
2007 初一 2班 星期一 2 数学
...
问题:我要得到某一个教师比如:张三的个人课程表,格式如:
节次 星期一 星期二 星期三 星期四 星期五 星期六
1 初一1班 初一2班
语文 语文
2 初一1班
语文
.....
谢谢!
subject_teacher:
年度 年级 班级 科目 教师
2007 初一 1班 语文 张三
2007 初一 1班 数学 李四
2007 初一 2班 语文 张三
2007 初一 2班 数学 王五
...
subject_paike:
年度 年级 班级 星期 节次 科目
2007 初一 1班 星期一 1 语文
2007 初一 1班 星期一 2 语文
2007 初一 2班 星期三 1 语文
2007 初一 2班 星期一 2 数学
...
问题:我要得到某一个教师比如:张三的个人课程表,格式如:
节次 星期一 星期二 星期三 星期四 星期五 星期六
1 初一1班 初一2班
语文 语文
2 初一1班
语文
.....
谢谢!
b.节次,
max(case when b.星期='星期一' then a.年级+a.班级+char(13)+char(10)+a.科目 end) as 星期一,
max(case when b.星期='星期二' then a.年级+a.班级+char(13)+char(10)+a.科目 end) as 星期二,
max(case when b.星期='星期三' then a.年级+a.班级+char(13)+char(10)+a.科目 end) as 星期三,
max(case when b.星期='星期四' then a.年级+a.班级+char(13)+char(10)+a.科目 end) as 星期四,
max(case when b.星期='星期五' then a.年级+a.班级+char(13)+char(10)+a.科目 end) as 星期五,
max(case when b.星期='星期六' then a.年级+a.班级+char(13)+char(10)+a.科目 end) as 星期六
from subject_teacher a,subject_paike b
where a.年度=b.年度
and a.年级=b.年级
and a.班级=b.班级
and a.科目=b.科目
and a.教师='张三'
group by b.节次
declare @subject_teacher table(
年度 int,
年级 varchar(10),
班级 varchar(10),
科目 varchar(10),
教师 varchar(10)
)insert @subject_teacher select
2007, '初一', '1班', '语文', '张三'
union all select
2007, '初一', '1班', '数学', '李四'
union all select
2007, '初一', '2班', '语文', '张三'
union all select
2007, '初一', '2班', '数学', '王五'declare @subject_paike table (
年度 int,
年级 varchar(10),
班级 varchar(10),
星期 varchar(10),
节次 varchar(10),
科目 varchar(10)
)insert @subject_paike select
2007 ,'初一', '1班', '星期一', '1', '语文'
union all select
2007 ,'初一', '1班', '星期一', '2', '语文'
union all select
2007 ,'初一', '2班', '星期三', '1', '语文'
union all select
2007 ,'初一', '2班', '星期一', '2', '数学'select
b.节次,
max(case when b.星期='星期一' then a.年级+a.班级+' '+a.科目 end) as 星期一,
max(case when b.星期='星期二' then a.年级+a.班级+' '+a.科目 end) as 星期二,
max(case when b.星期='星期三' then a.年级+a.班级+' '+a.科目 end) as 星期三,
max(case when b.星期='星期四' then a.年级+a.班级+' '+a.科目 end) as 星期四,
max(case when b.星期='星期五' then a.年级+a.班级+' '+a.科目 end) as 星期五,
max(case when b.星期='星期六' then a.年级+a.班级+' '+a.科目 end) as 星期六
from @subject_teacher a,@subject_paike b
where a.年度=b.年度
and a.年级=b.年级
and a.班级=b.班级
and a.科目=b.科目
and a.教师='张三'
group by b.节次--结果
节次 星期一 星期二 星期三 星期四 星期五 星期六
---------- ------------------------------- ------------------------------- ------------------------------- ------------------------------- ------------------------------- -------------------------------
1 初一1班 语文 NULL 初一2班 语文 NULL NULL NULL
2 初一1班 语文 NULL NULL NULL NULL NULL(所影响的行数为 2 行)
declare @subject_teacher table(
年度 int,
年级 varchar(10),
班级 varchar(10),
科目 varchar(10),
教师 varchar(10)
)insert @subject_teacher select
2007, '初一', '1班', '语文', '张三'
union all select
2007, '初一', '1班', '数学', '李四'
union all select
2007, '初一', '2班', '语文', '张三'
union all select
2007, '初一', '2班', '数学', '王五'declare @subject_paike table (
年度 int,
年级 varchar(10),
班级 varchar(10),
星期 varchar(10),
节次 varchar(10),
科目 varchar(10)
)insert @subject_paike select
2007 ,'初一', '1班', '星期一', '1', '语文'
union all select
2007 ,'初一', '1班', '星期一', '2', '语文'
union all select
2007 ,'初一', '2班', '星期三', '1', '语文'
union all select
2007 ,'初一', '2班', '星期一', '2', '数学'select
b.节次,
max(case when b.星期='星期一' then a.年级+a.班级+' '+a.科目 else '' end) as 星期一,
max(case when b.星期='星期二' then a.年级+a.班级+' '+a.科目 else '' end) as 星期二,
max(case when b.星期='星期三' then a.年级+a.班级+' '+a.科目 else '' end) as 星期三,
max(case when b.星期='星期四' then a.年级+a.班级+' '+a.科目 else '' end) as 星期四,
max(case when b.星期='星期五' then a.年级+a.班级+' '+a.科目 else '' end) as 星期五,
max(case when b.星期='星期六' then a.年级+a.班级+' '+a.科目 else '' end) as 星期六
from @subject_teacher a,@subject_paike b
where a.年度=b.年度
and a.年级=b.年级
and a.班级=b.班级
and a.科目=b.科目
and a.教师='张三'
group by b.节次
select @s=@s+',max(case 星期 when '''+星期+''' then 年级+班级+'' ''+科目 else '''' end) as '+星期
from subject_paike group by 星期select @s='select 节次'+@s+'
from (select p.*,t.教师 from subject_paike p
join subject_teacher t
on p.年度=t.年度 and
p.年级=t.年级 and
p.班级=t.班级 and
p.科目=t.科目 and
t.教师=''张三'')j
group by 节次'
exec (@s)