当前位置: 代码迷 >> Sql Server >> 多表查询的难点,从单表取值,然后再合并多表出结果
  详细解决方案

多表查询的难点,从单表取值,然后再合并多表出结果

热度:73   发布时间:2016-04-24 09:17:01.0
多表查询的难题,从单表取值,然后再合并多表出结果。
同一个数据库DB1里一共有12个表,名称是: table01-2014, table02-20154, ... table12-2014. 

每个表的定义都一样,有如下3列 (UserId在每个表里都代表一个人):
UserId; UserName; Class; Score
0001;  Chinese; 70
0001;  English; 50
0002;  English; 70
0003;  English; 80
0001;  Math; 90
0003;  Math; 80
0004;  Chinese; 60
...

现在需要把每个表的Score列从高到底排序,然后得到每个表的前三名(取3个唯一的UserId), 再查出在12个表里出现次数最多的(不一定是得分最高的)UserId的前10,并且列出如下信息:

UserId; Avg(Score) ; Max(Score); Min(Score)

Avg(Score)是这个UserId在所有12个表里的所有科目的平均分
Max(Score)是这个UserId在所有12个表里的所有科目的最高分
Min(Score)是这个UserId在所有12个表里的所有科目的最低分



------解决思路----------------------
是的。用 MIN(score) 代替 MAX(score),正序排名。
  相关解决方案