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
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
on s.no =t.no group by s.no
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
*/
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)
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
成绩表表名: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可以解决并列排名的问题