现有一表 Result  字段/姓名:Name 科目:Subject  得分: Count
表值例如:A  34  语文
          A  78  数学
          A  88  英语          B  65  语文
          B  78  数学
          B  88  英语          C  76  语文
          C  78  数学
          C  88  英语求语数外都超过60分的人的 姓名

解决方案 »

  1.   


    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
      

  2.   

    up看来我的Sql也要在学学啊,失败!!!
      

  3.   


    select  distinct(name) from result
    where name  not in 
    (
      select distinct(name) from result where count<60 
    )
      

  4.   

    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','语文',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]
      

  5.   

    分析一下:
    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