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

有点复杂的查平均分问题
两个表:一个是学生信息表info,一个是老师打分表mark。
info有学号id、学生姓名name两个字段,mark表有学号id、老师姓名name、分数point三个字段。
要查询的是学号为2的学生的各个老师打分的平均分。这个语句应该这么写?

------解决方案--------------------
select a.name,avg(a.point)
from mark a
where a.id=2
group by a.name
------解决方案--------------------
create table info(strdentid int ,name nvarchar(200))
insert into info select 1, 'strdent1 '
insert into info select 2, 'strdent2 '

create table mark(strdentid int,teachername nvarchar(200),point int)
insert into mark select 1, 'teacher1 ',40
insert into mark select 1, 'teacher2 ',40
insert into mark select 1, 'teacher3 ',80
insert into mark select 1, 'teacher4 ',80
insert into mark select 2, 'teacher1 ',50
insert into mark select 2, 'teacher2 ',60

select b.name,avg(a.point) from mark as a,info as b where a.strdentid = b.strdentid
and a.strdentid = 2
group by b.name

drop table mark
drop table info

作业吧!!!
------解决方案--------------------
Select id,mark.name,Avg(point) point From mark Where id=2 Group by name,id
------解决方案--------------------
要查询的是学号为2的学生的各个老师打分的平均分。

这句话不明白啊!
mark表
学号id、老师姓名name、分数point
2 甲 30
2 甲 50
2 乙 40
那么需要查询出来的结果是:
1: id name avgpoint
2 甲 40
2 乙 60
2: id avgpoint
2 40

你的意思是哪种啊?