NO NAME SEX BIRTHDAY CLASS
108 曾华 男 09/01/77 95033
105 匡明 男 10/02/75 95031
107 王丽 女 01/23/76 95033
101 李军 男 02/20/76 95033
109 王芳 女 02/10/75 95031
103 陆军 男 06/03/74 95031Teacher表
NO NAME SEX BIRTHDAY PROF DEPART
804 李城 男 12/02/58 副教授 计算机系
856 张旭 男 03/12/69 讲师 电子工程系
825 王萍 女 05/05/72 助教 计算机系
831 刘冰 女 08/14/77 助教 电子工程系Course表
CNO CNAME TNO
3-105 计算机导论 825
3-245 操作系统 804
6-166 数字电路 856
9-888 高等数学 100Score表
NO CNO DEGREE
103 3-245 84
105 3-245 67
109 3-245 98
103 3-105 78
105 3-105 91
109 3-105 68
101 3-105 93
107 3-105 72
108 3-105 66
101 6-166 80
107 6-166 77
108 6-166 62

解决方案 »

  1.   

    select name,avg(degree) from score s join student t
    on s.no =t.no group by s.no
      

  2.   


    declare @Score表 table (NO int,CNO varchar(5),DEGREE int)
    insert into @Score表
    select 103,'3-245',84 union all
    select 105,'3-245',67 union all
    select 109,'3-245',98 union all
    select 103,'3-105',78 union all
    select 105,'3-105',91 union all
    select 109,'3-105',68 union all
    select 101,'3-105',93 union all
    select 107,'3-105',72 union all
    select 108,'3-105',66 union all
    select 101,'6-166',80 union all
    select 107,'6-166',77 union all
    select 108,'6-166',62declare @student table 
    (NO int,NAME varchar(4),SEX varchar(2),BIRTHDAY datetime,CLASS int)
    insert into @student
    select 108,'曾华','男','09/01/77',95033 union all
    select 105,'匡明','男','10/02/75',95031 union all
    select 107,'王丽','女','01/23/76',95033 union all
    select 101,'李军','男','02/20/76',95033 union all
    select 109,'王芳','女','02/10/75',95031 union all
    select 103,'陆军','男','06/03/74',95031select NAME,avgdegree from (
    select top 1 NO,avg(DEGREE) as avgdegree from @Score表 group by NO
    order by avg(DEGREE)) a left join @student b on a.NO=b.NO
    /*
    NAME avgdegree
    ---- -----------
    曾华   64
    */
      

  3.   

    select a.NAME,avg(b.DEGREE)DEGREE
    from student a,Score b
    where a.NO=b.CNO
    group by a.NO,a.NAME
    having avg(b.DEGREE)<=all (select avg(DEGREE) from Score group by CNO)
      

  4.   

    select
     name,avgdegree 
    from
     (select top 1 NO,avg(DEGREE) as avgdegree  with ties from Score group by NO order by avg(DEGREE)) a 
    left join
     student b 
    on
     a.NO=b.NO
      

  5.   

    学生表表名:XS
    成绩表表名:CJselect x.No,y.Name,x.degree from (
       select no,avg(degree) as degree from cj group by no having avg(degree)<=
         (select min(a.degree) from (
            select no,avg(degree) as degree from cj Group by No
          ) as a )
        ) x INNER JOIN xs y ON x.no=y.No可以解决并列排名的问题