select 姓名,yzhp_course.课程名,
yzhp_grade.平时*0.1+yzhp_grade.期中*0.2+yzhp_grade.期末*0.7 as 最高总评
from yzhp_grade,yzhp_course,yzhp_student
where yzhp_grade.课程代号=yzhp_course.课程代号
and yzhp_grade.学号=yzhp_student.学号
group by yzhp_course.课程名我的目的是:计算并显示每一门课程的课程名、最高总评分及对应的学生姓名 。但是现在由于group by的问题不能够实现,请教大家一下这个问题应该怎样修改?谢谢了
yzhp_grade.平时*0.1+yzhp_grade.期中*0.2+yzhp_grade.期末*0.7 as 最高总评
from yzhp_grade,yzhp_course,yzhp_student
where yzhp_grade.课程代号=yzhp_course.课程代号
and yzhp_grade.学号=yzhp_student.学号
group by yzhp_course.课程名我的目的是:计算并显示每一门课程的课程名、最高总评分及对应的学生姓名 。但是现在由于group by的问题不能够实现,请教大家一下这个问题应该怎样修改?谢谢了
from tb A
where not exists (select 1 from tb B A.课程名=B.课程名 and A.分数<B.分数)
FROM yzhp_grade
GROUP BY yzhp_grade.学号
select 姓名,yzhp_course.课程名,yzhp_grade.平时*0.1+yzhp_grade.期中*0.2+yzhp_grade.期末*0.7 as 最高总评,
row_number() over(partion by yzhp_course.课程名 order by yzhp_grade.平时*0.1+yzhp_grade.期中*0.2+yzhp_grade.期末*0.7) row_num
from yzhp_grade,yzhp_course,yzhp_student
where yzhp_grade.课程代号=yzhp_course.课程代号
and yzhp_grade.学号=yzhp_student.学号
group by yzhp_course.课程名
)T
where row_num = 1
select 姓名,yzhp_course.课程名,
max(yzhp_grade.平时*0.1+yzhp_grade.期中*0.2+yzhp_grade.期末*0.7) as 最高总评
from yzhp_grade,yzhp_course,yzhp_student
where yzhp_grade.课程代号=yzhp_course.课程代号
and yzhp_grade.学号=yzhp_student.学号
and 课程名 like '%'
group by 姓名,yzhp_course.课程名
现在写成这样了,但是仍然得不到我要的结果,max在这没有什么作用,输出仍然是所有行。
select 姓名,yzhp_course.课程名,max(最高总评) 最高总评
from
(
select 姓名,yzhp_course.课程名,
max(yzhp_grade.平时*0.1+yzhp_grade.期中*0.2+yzhp_grade.期末*0.7) as 最高总评
from yzhp_grade,yzhp_course,yzhp_student
where yzhp_grade.课程代号=yzhp_course.课程代号
and yzhp_grade.学号=yzhp_student.学号
and 课程名 like '%')
T
group by 姓名,yzhp_course.课程名
无法绑定由多个部分组成的标识符 "yzhp_course.课程名"。
消息 4104,级别 16,状态 1,第 1 行
无法绑定由多个部分组成的标识符 "yzhp_course.课程名"。
还是出现错误