sql查询 用sql语言

来源:百度知道 编辑:UC知道 时间:2024/05/22 16:57:50
有学生信息表(学号、姓名、性别、年龄),成绩表(学号、课程号,成绩),课程表(课程号、课程名)三个表~
查询学习体操课并且英语,数学成绩之和大于170的学生的姓名,年龄,英语,数学四个字段的信息
用sql语言~~~

select 信息表.姓名,信息表.年龄,课程表.课程名,成绩表.成绩 from
(信息表 inner join 成绩表 on 信息表.学号=成绩表.学号)
inner join 课程表 on 成绩表.课程号=课程表.课程号
where 成绩表.学号 in
(select 成绩表.学号 from 成绩表 inner join 课程表 on 成绩表.课程号=课程表.课程号 where 课程表.课程名='体操课' and 成绩表.成绩<>'')
and
成绩表.学号 in
(select 成绩表.学号 from 成绩表 inner join 课程表 on 成绩表.课程号=课程表.课程号 where 课程表.课程名='英语' or 课程表.课程名='数学' and sum(成绩表.成绩)>170 group by 成绩表.学号)

累死了!~

SELECT 姓名,年龄,英语,数学
FROM 学生信息表, 成绩表
WHERE 英语+数学>170 AND 学生信息表.学号=成绩表.学号
试试吧……

select a.姓名,a.年龄,p.英语,p.数学

from 学生信息表 a,

(select 学号,sum(成绩) 成绩 from
(select 学号,课程号,成绩 from 成绩表 x where not exists(select * from 课程表 where 课程号=x.课程号 and (课程名<>体操 or 课程名<>英语 or 课程名<>数学))) b,
(select 课程号,课程名 from 课程表 where 课程名<>体操) c
where b.课程号=c.课程号
group by b.学号)m,

成绩表 n,
课程表 p,

where a.学号=m.学号 and m.学号=n.学号 and n.课程号=p.课程号 and m.