表1  StuInfo
交叉表查询---统计成绩等(第二问不会)如: StuID    Name     Class
交叉表查询---统计成绩等(第二问不会)  
4020  望仪容  1班
交叉表查询---统计成绩等(第二问不会)   
4022  答复   3班
交叉表查询---统计成绩等(第二问不会)   
4025  地方   2班
交叉表查询---统计成绩等(第二问不会)   
4021  达到   1班
交叉表查询---统计成绩等(第二问不会)   
4023  的啊   3班
交叉表查询---统计成绩等(第二问不会)   
4024  haoha   2班

表2  StuScore
交叉表查询---统计成绩等(第二问不会)如:StuID    Course    Score 
交叉表查询---统计成绩等(第二问不会)   
4020  数学   50
交叉表查询---统计成绩等(第二问不会)   
4020  英语   80
交叉表查询---统计成绩等(第二问不会)   
4022  数学   70
交叉表查询---统计成绩等(第二问不会)   
4022  英语   80
交叉表查询---统计成绩等(第二问不会)   
4025  数学   30
交叉表查询---统计成绩等(第二问不会)   
4025  英语   50
交叉表查询---统计成绩等(第二问不会)   
4021  数学   80
交叉表查询---统计成绩等(第二问不会)   
4021  英语   90
交叉表查询---统计成绩等(第二问不会)   
4023  数学   60
交叉表查询---统计成绩等(第二问不会)   
4023  英语   70

一、查询每位学生姓名与总成绩。
交叉表查询---统计成绩等(第二问不会)SELECT tbl.StuID as 学号,Name as 姓名,tbl.zcj as 总分 
交叉表查询---统计成绩等(第二问不会)
from StuInfo INNER JOIN 
交叉表查询---统计成绩等(第二问不会)(
交叉表查询---统计成绩等(第二问不会)
select StuID,SUM(Score) as zcj from StuScore group by StuID
交叉表查询---统计成绩等(第二问不会))tbl 
交叉表查询---统计成绩等(第二问不会)
on StuInfo.StuID=tbl.StuID

结果:
交叉表查询---统计成绩等(第二问不会)         学号      姓名   总分
交叉表查询---统计成绩等(第二问不会)1 
4020     望仪容     130
交叉表查询---统计成绩等(第二问不会)2 
4021     达到      170
交叉表查询---统计成绩等(第二问不会)3 
4022     答复      150
交叉表查询---统计成绩等(第二问不会)4 
4023     的啊      130
交叉表查询---统计成绩等(第二问不会)5 
4025     地方      80
交叉表查询---统计成绩等(第二问不会)


二、查询各班级的总分第一名。

我只查出了(班级、总分),但不知道怎样查出如下结果形式(班级、姓名、总分)

交叉表查询---统计成绩等(第二问不会)SELECT Class as 班级,MAX(score) as 总分 
交叉表查询---统计成绩等(第二问不会)
from
交叉表查询---统计成绩等(第二问不会)(
交叉表查询---统计成绩等(第二问不会) 
select A.StuID,A.Name,A.Class,B.Score from StuInfo A INNER JOIN 
交叉表查询---统计成绩等(第二问不会)    (
交叉表查询---统计成绩等(第二问不会)      
select StuID,Sum(score) as Score from StuScore group by StuID
交叉表查询---统计成绩等(第二问不会)    )B 
交叉表查询---统计成绩等(第二问不会) 
on A.StuID=B.StuID
交叉表查询---统计成绩等(第二问不会))Tmp 
group by Class

结果:

交叉表查询---统计成绩等(第二问不会)       班级  总分
交叉表查询---统计成绩等(第二问不会)1      1班  
170
交叉表查询---统计成绩等(第二问不会)2      2班  
80
交叉表查询---统计成绩等(第二问不会)3      3班  
150

终于做出来了,不过感觉似乎有点麻烦!不知道有没简单点的?

交叉表查询---统计成绩等(第二问不会)SELECT C.Class as 班级,D.Name as 姓名,C.MaxSco as 总分 
交叉表查询---统计成绩等(第二问不会)
FROM
交叉表查询---统计成绩等(第二问不会)(
交叉表查询---统计成绩等(第二问不会)
select Class,MAX(score) as MaxSco from 
交叉表查询---统计成绩等(第二问不会)  (
select A.StuID,A.Name,A.Class,B.Score 
交叉表查询---统计成绩等(第二问不会)    
from StuInfo A INNER JOIN 
交叉表查询---统计成绩等(第二问不会)        (
select StuID,SUM(score) as Score from StuScore group by StuID)B 
交叉表查询---统计成绩等(第二问不会)    
on A.StuID=B.StuID
交叉表查询---统计成绩等(第二问不会)   )D 
group by Class
交叉表查询---统计成绩等(第二问不会))C 
交叉表查询---统计成绩等(第二问不会)
INNER JOIN 
交叉表查询---统计成绩等(第二问不会)(
select A.StuID,A.Name,A.Class,B.Score 
交叉表查询---统计成绩等(第二问不会)  
from StuInfo A INNER JOIN 
交叉表查询---统计成绩等(第二问不会)     (
select StuID,SUM(score) as Score from StuScore group by StuID)B 
交叉表查询---统计成绩等(第二问不会)  
on A.StuID=B.StuID
交叉表查询---统计成绩等(第二问不会))D 
交叉表查询---统计成绩等(第二问不会)
ON C.MaxSco=D.Score and C.Class=D.Class 
交叉表查询---统计成绩等(第二问不会)
ORDER BY C.Class

 结果:

交叉表查询---统计成绩等(第二问不会)      班级   姓名    总分
交叉表查询---统计成绩等(第二问不会)
1   1班        达到    170
交叉表查询---统计成绩等(第二问不会)
2   2班    地方      80
交叉表查询---统计成绩等(第二问不会)
3   3班    答复      150
交叉表查询---统计成绩等(第二问不会)

 

 

相关文章:

  • 2022-12-23
  • 2021-11-27
  • 2021-09-25
  • 2022-12-23
  • 2022-12-23
  • 2022-03-03
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-01-16
  • 2022-02-03
  • 2022-12-23
  • 2021-05-18
相关资源
相似解决方案