问一个简单的问题!关于查询的!
有三张表:课程表,选课表,成绩表'
用一句sql语句怎么实现:试求所有学生学号、选课门数及平均成绩。
有三张表:课程表,选课表,成绩表'
用一句sql语句怎么实现:试求所有学生学号、选课门数及平均成绩。
解决方案 »
- 关于sql sever
- sql2008如何删除登陆名记录?
- 求对比两个表中,字段名不一样的SQL
- sql 去除重复数据
- 这样的查询语句怎么写?
- 关于数据库维护计划中数据备份问题
- 如何在Qurey Analyzer中查询通过ODBC联接的Access数据表,
- 我已经创建了一个表,里面有一些字段,但是我之前没有添加约束,我想在后面 利用 alter table XX add constraint 里面添加
- 如何设定sql server2000的媒体集???或如何取得备份文件*.bak的内容(不要说回复数据库,有没有可以阅读*.bak文件的工具??)
- sql server7.0数据库复制问题
- 这天语句再sql2000、sql 2005 都能正确运行吗??
- SQL
from 课程表 a
join 选课表 b on a.id=b.id
join 成绩表 c on b.id=c.id
group by a.学号
http://topic.csdn.net/u/20090331/08/974cf653-f6d8-4a9a-b1f5-bbe633d84383.html
学生表,选课表,成绩表
where 学生表.学号=成绩表.学号 and
成绩表.课程号=选课表.课程号 group by 学生表.学号
这种写法和你上面有什么区别吗?
select a.学号,count(distinct c.课程号),avg(成绩) from 学生表 a left join (成绩表 b join 课程表 c on b.课程号=c.课程号) on a.学号 = b.学号
group by a.学号
select 学号, dbo.getNum01() as [选课门数],dbo.getNum01() as [平均成绩] from 成绩表
create function getNum01(@studentID varchar(200))
returns int
as
begin
declare @n int
select @n=count(*) from 成绩表 where 学号=@studentID
return @n
endcreate function getNum02(@studentID varchar(200))
returns float
as
begin
declare @m float
select @n=avg(成绩) from 成绩表 where 学号=@studentID
return @m
end