求助~~sql语句

yzlz888 2006-04-04 08:32:44
表名 subject
字段 类型
sno integer; 科目号
sna varchar; 科目名称
表名 student
字段 类型
id integer; 学生编号
name varchar; 姓名
sex char; 性别(男‘m’,女‘f’)
classid integer; 班级号码
表名 class
字段 类型
id integer; 班级号
cname varchar; 班级名称
表名 su_mark
字段 类型
sid integer 学号
sno integer 科目号
mark decmial; 成绩
要求用sql语言实现以下操作
1 查询‘王雷’的‘数学’成绩;
2 统计‘王雷’的平均分;
3 统计‘高三一班’所有‘数学’和‘英语’均在95分以上的女生人数;
4 按照科目分类现实‘高三一班’该科的平均分
...全文
126 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
BurubBiancheng 2006-04-04
Select c.mark From subject a,sudent b,su_mark c
Where a.sno=c.sno And b.Id=c.sid And b.Name='王雷' And a.sna='数学';

Select Avg(c.mark) From subject a,sudent b,su_mark c
Where a.sno=c.sno And b.Id=c.sid And b.Name='王雷' ;

Select Count(*) From subject a,sudent b,su_mark c,Class d
Where a.sno=c.sno And b.Id=c.sid And b.classid=d.Id And d.cname='高三一班' And b.sex='f'
And (a.sna='数学' And c.mark>95 ) And (a.sna='英语' And c.mark>95 );

Select a.sna,Avg(c.mark) From subject a,sudent b,su_mark c,Class d
Where a.sno=c.sno And b.Id=c.sid And b.classid=d.Id And d.cname='高三一班'
Group By a.sna;
回复
yzlz888 2006-04-04
3 4 题 还请大家帮帮忙
回复
yzlz888 2006-04-04
呵呵 谢谢大家了 不是老师出的 是朋友单位的面试题 比较变态
回复
mschen 2006-04-04
--the forth one

select sno,avg(mark) as mark
from su_mark a
where exists(select 1 from students
where id=a.sid and classid=(select id
from class
where cname='高三一班' ));
回复
mschen 2006-04-04
--the first one

select mark
from su_mark a join student b
on a.sid=b.id
join subject c
on a.sno=c.sno
where b.name='王雷' and c.sna='数学';

--the second one

select avg(mark)
from su_mark a
where exists(select 1 from student where id=a.sid and name='王雷');
回复
wffffc 2006-04-04
1 查询‘王雷’的‘数学’成绩;
select mark from su_mark a where a.sid = (select id from student where name = "王雷")
and sno = ( select sno from subject where sna = "数学");
2 统计‘王雷’的平均分;
select avg(mark) from su_mark a where a.sid = (select id from student where name = "王雷");
3 统计‘高三一班’所有‘数学’和‘英语’均在95分以上的女生人数;
4 按照科目分类现实‘高三一班’该科的平均分
回复
adaizi1980 2006-04-04
1、select b.id,b.name,a.mark
from su_mark a,
student b,
subject c
where a.sno = c.no
and a.sid = b.id
and b.name = '王雷'
and c.sna = '数学'
2、select b.id,b.name,average(a.mark)
from su_mark a,
student b,
subject c
where a.sno = c.no
and a.sid = b.id
and b.name = '王雷'
group by b.id,b.name,a.sno
剩下的自己学着写,哪家的老师出这么没创意的题目?
要是有几十个叫王雷的怎么办?要是有几个科目有相同的名字怎么办?谁家的学校数据库里永远只有一个“高三一班”?
好好学习,天天向上,也要选点好题目嘛
回复
相关推荐
发帖
基础和管理
创建于2007-09-28

1.7w+

社区成员

Oracle 基础和管理
申请成为版主
帖子事件
创建了帖子
2006-04-04 08:32
社区公告
暂无公告