现有一表 Result 字段/姓名:Name 科目:Subject 得分: Count
表值例如:A 34 语文
A 78 数学
A 88 英语 B 65 语文
B 78 数学
B 88 英语 C 76 语文
C 78 数学
C 88 英语求语数外都超过60分的人的 姓名
表值例如:A 34 语文
A 78 数学
A 88 英语 B 65 语文
B 78 数学
B 88 英语 C 76 语文
C 78 数学
C 88 英语求语数外都超过60分的人的 姓名
declare @table Table( name varchar(20) , SubjectName varchar(20), Countnum decimal(2)) insert into @table values('A','语文',34)
insert into @table values('A','数学',77)
insert into @table values('A','英语',88)insert into @table values('B','语文',65)
insert into @table values('B','数学',75)
insert into @table values('B','英语',88)insert into @table values('C','语文',76)
insert into @table values('C','数学',77)
insert into @table values('C','英语',78)
select name from @table
group by name
having MIN(Countnum)>60
select distinct(name) from result
where name not in
(
select distinct(name) from result where count<60
)
insert into @table values('A','数学',77)
insert into @table values('A','英语',88)insert into @table values('B','语文',60)
insert into @table values('B','数学',75)
insert into @table values('B','英语',38)insert into @table values('C','语文',76)
insert into @table values('C','数学',77)
insert into @table values('C','英语',78)
select [name] from @table where [name] not in
(select [name] from @table where Countnum<60) group by [name]
1、如果同一个人大于60分有三条记录证明这个人可以 被选出。
2、我要选的人在第一个条件中。
select name from (
select name,count(*) as num from Result group by name where Count>60) as B where B.num=3