日期:2014-05-18  浏览次数:20461 次

sql视图解惑
          班级表     ID(number)       Name(varchar2)       Class_desc(varchar2)    
     
          学生表     ID(number)     Name(varchar2)   CLassid(number)     Sex(number)

          成绩表student_scores       stu_id(number)       type_id(varchar)       score(number)  


      1:建一个View     包含班级名,   学生名,科目,分数


      2:统计每个学生的总分


      3:统计classid=1     type_id=3     的平均分

------解决方案--------------------
SQL code

班级表     ID(number)      Name(varchar2)       Class_desc(varchar2)    
学生表     ID(number)     Name(varchar2)   CLassid(number)     Sex(number)
成绩表student_scores       stu_id(number)       type_id(varchar)       score(number)  
1:建一个View     包含班级名,   学生名,科目,分数
create view view_1 as 
select 班级表.name as 班级名,
学生表. Name,type_id as 科目,score as 分数
from 学生表 成绩表 on 学生表.ID=成绩表.stu_id
inner join 学生表 on 学生表.CLassid=班级表.ID
inner join 
2:统计每个学生的总分
select 学生名,sum(score) as 总分 fron view_1
3:统计classid=1     type_id=3     的平均分
select 班级名,avg(score) from view_1 where 班级名=(select Name from 班级表 where classid=1)

------解决方案--------------------
SQL code

班级表     ID(number)      Name(varchar2)       Class_desc(varchar2)    
学生表     ID(number)     Name(varchar2)   CLassid(number)     Sex(number)
成绩表student_scores       stu_id(number)       type_id(varchar)       score(number)  
1:建一个View     包含班级名,   学生名,科目,分数
create view view_1 as 
select 班级表.name as 班级名,
学生表. Name,type_id as 科目,score as 分数
from 学生表 
inner join 成绩表 on 学生表.ID=成绩表.stu_id
inner join 学生表 on 学生表.CLassid=班级表.ID
2:统计每个学生的总分
select 学生名,sum(score) as 总分 fron view_1
3:统计classid=1     type_id=3     的平均分
select 班级名,avg(score) from view_1 where 班级名=(select Name from 班级表 where classid=1)

刚刚弄错了一个地方

------解决方案--------------------
楼主啊 给我分把吧
楼上正解
------解决方案--------------------
好像是哪里的作业