注册 登录
编程论坛 SQL Server论坛

急,求一个SQL题,大家帮个忙

zhangyi8200 发布于 2010-04-16 21:35, 701 次点击
1,查询所有"应用"专业姓'李'的学生的姓名与年级
2,统计高等数学课的平均成绩
3,查询学过"计算机基础"或者学过'程序设计"课程的所有学生的姓名
学生
学号       姓名        年级       专业
890237     陈莉         89         软件
902783    李玉刚        90        应用
903829     王磊         90        软件
918327     刘玉         91        应用

课程
课号       课名       开课教师      总学时       学分
1        程序设计      王一唯         80          4
2        汇编语言       刘锋          80          4
3        高等数学       徐伟          60          3
3       计算机基础     张在生         60          3

选课
学号     课号     成绩
890237     2       85
890237     3       78
890237     4       75
902738     1       67
902783     3   
903829     1       82
903829     2       71
918327     1       50
7 回复
#2
自欺欺人2010-04-16 22:10
数据库问题啊……好难啊……
#3
cnfarer2010-04-17 08:33

1.SELECT 姓名,年级 FROM 学生 WHERE 专业="应用" AND 姓名 like "李%"
2.SELECT "高等数学" 课名,AVG(成绩) 平均成绩 FROM 选课 WHERE 课号=(SELECT 课号 from 课程 WHERE 课名="高等数学")
3.SELECT 姓名 FROM 学生 WHERE 学号 IN (SELECT a.学号 FROM 成绩 a inner join 课程 b on a.课号=b.课号 WHERE 课名="计算机基础" OR 课名="程序设计")
#4
cnfarer2010-04-17 10:07
补充:上面应该用单引号!!!
#5
诗空2010-04-17 18:19
select 姓名,年级 from 学生 where 专业 = "应用" and 姓名 like "李%"
select 课名,AVG(成绩) as 平均成绩 from 课程 join in 选课 on 课程.课号 = 选课.课号 where 课名 = "高等数学"
#6
crszf2010-04-20 21:42
回复 3楼 cnfarer
第二题错了,不在聚合函数中的字段要用Group By子句
#7
crszf2010-04-20 21:53
1 Select 姓名,年级 From 学生 Where 专业='应用' And 姓名 Like '李%'
2 Select Avg(成绩) From 选课 Where 课号 In(Select 课号 From 课程 Where 课名 = '高等数学')
3 Select 姓名 From 学生 Where 学号 In(Select 学号 From 选课 Where 课号 In(Select 课号 From 课程 Where 课名 In('计算机基础','程序设计')))         
#8
mengzhihen2010-04-20 22:49
版主思路好清晰,羡慕!
1