有挑战的视图

来源:百度知道 编辑:UC知道 时间:2024/06/19 16:05:18
表结构
学员ID 课程ID 成绩 考试类型
001 k1 60 1
001 k1 80 1
001 k1 90 2
001 k2 70 1
001 k2 80 2
002 k1 70 1
002 k1 80 1
002 k1 90 2
多个学员,多门成绩,1表示平时成绩 2表示期末成绩 成绩=所有该科平时成绩之和除以次数 *0.5+期末成绩*0.5
统计每个学员,每门课的成绩,视图

create view view_fortablename
as
select 学员ID,课程ID,成责=avg(课程) from
(
select 学员ID,课程ID,成绩=avg(成绩) from TABLENAME WHERE 考试类型=1
group by 学员id,课程ID
union
select 学员ID,课程ID,成绩 from TABLENAME WHERE 考试类型=2
)
AS A
group by 学员id,课程ID
go

create view v1
as
select a.学员ID,a.课程ID,a.平时成绩+b.期末成绩 from
(select 学员ID,课程ID,sum(成绩)/count(*)*0.5 平时成绩 from 成绩表 where 考试类型=1 group by 学员ID,课程ID) a,
(select 学员ID,课程ID,成绩*0.5 期末成绩 where 考试类型=2) b
where a.学员ID=b.学员ID
and a.课程ID=b.课程ID