帮忙改下SQL语句

来源:百度知道 编辑:UC知道 时间:2024/06/02 17:29:49
表Stu
学号 姓名 学院 专业 班级
x04620617 邵桦 信电学院 计算机科学与技术 04计算机16班
x04620613 刘炎明 信电学院 计算机科学与技术 04计算机16班
x04620632 朱晟 信电学院 计算机科学与技术 04计算机16班
x04620631 朱能 信电学院 计算机科学与技术 04计算机16班
表Score
学号 课程 分数
x04620613 高数 66
x04620613 计算方法 64
x04620613 英语 60
x04620617 高数 77
x04620617 计算方法 66
x04620617 英语 60
x04620631 高数 100
x04620631 计算方法 77
x04620631 英语 77
按照学号计算每个学生的总成绩并安总成绩降序排列
strSQL="select Stu.学号,姓名,班级,Score.学号,sum(分数) as 总分 from Score,Stu ";
strSQL=strSQL+"where Stu.学号=Score.学号";
strSQL=strSQL+"and group by Score.学号 ";
strSQL=strSQL+"order by sum(分数)";
要这么改?
下面几个的方法都用过了,都不行,帮我搞定了+分的好可以!

有两种方式:

select a.学号,姓名,班级,sum(分数) as 总分
from stu a inner join score b on a.学号=b.学号
group by a.学号,姓名,班级
order by sum(分数)



select A.*,b.总分
from stu a inner join
(select 学号,sum(分数) as 总分 from score group by 学号)b
on a.学号=b.学号
order by b.总分 desc

祝你好运!

strSQL=strSQL+"and group by Score.学号 ";

把and去掉

from Score,Stu
改为 from score join str on score.学号=stu.学号
你只有连接了才能联合查询。

group by 前面不要 and

这50分可真相要啊。可惜没带书,代码忘了,试试这条语句吧!
select A.*,SUM(B.分数) form stu A,score B where a.学号=b.学号 and 学号 in (select DISTINCT 学号 form Stu) group by a.学号 order by sum(分数) desc
如果没有写错的话,一条就可以查出来你要的结果了!

select Stu.学号,姓名,班级,sum(分数) as 总分
from Score join Stu on Stu.学号=Score.学号
group by stu.学号
order by sum(分数) desc