有两个表 
TA: 
ID 科目编号 科目名称 
1 01 语文 
2 02 数学 
... TB: 
ID 科目编号 科目成绩 
1 01 96 
2 02 96 
3 01 95 
4 01 90 
5 02 92 
... 
我想查询得到TA表中的内容列表,需要根据TB表中的科目成绩的平均值来倒序排列.

解决方案 »

  1.   

    select a.*
    from ta left join
    (select 科目编号,avg(科目成绩 ) as av from tb group by 科目编号) b
    on a.科目编号= b.科目编号
    order by b.av desc
      

  2.   

    select ta.科目名称,t.科目成绩 from ta,(select 科目编号,avg(tb.科目成绩) as 科目成绩 from tb  group by 科目编号) as t
    where ta.科目编号=t.科目编号
    order by t.科目成绩 desc
      

  3.   

    select ta.*
    from ta,(select 科目编号,avg(科目成绩) as  科目成绩 from tb group by 科目编号) t
    where ta.科目成绩=t.科目成绩
    order by t.科目成绩 desc
      

  4.   

    select a.*,b.平均成绩
    from TA a left join (
    select 科目编号,avg(科目成绩) as 平均成绩 from TB group by 科目编号
    ) as b
    on a.科目编号=b.科目编号
      

  5.   

    加排序select a.*,b.平均成绩
    from TA a left join (
    select 科目编号,avg(科目成绩) as 平均成绩 from TB group by 科目编号
    ) as b
    on a.科目编号=b.科目编号
    order by isnull(b.平均成绩,-1) desc