有如下表
姓名    科目      分数
小强    语文      80
小明    数学      60
小伟    语文      50
小东    语文      68
小东    数学      88
小强    化学      96
小伟    化学      76
小强    数学      83
小伟    化学      72
小强    英语      80
小明    物理      68试用一条SQL语句,选取全部科目都在80分以上的学生名单!

解决方案 »

  1.   

    select 姓名
    from tablename
    group by 姓名
    having min(分数)>=80
      

  2.   

    trySelect 姓名 From 表
    Where 分数 > 80
    Group By 姓名
    Having Count(姓名) = (Select Count(Distinct 科目) From 表)
      

  3.   

    试用一条SQL语句,选取全部科目都在80分以上的学生名单!------------
    如果某人有些科目沒有分数呢?
      

  4.   

    另外一種效果Select Distinct A.姓名 From 表 A Where Not Exists(Select 姓名 From 表 Where 姓名 = A.姓名 And 分数 <= 80)
      

  5.   

    create table t
    (姓名  varchar(10),  科目 varchar(10),    分數 int)
    insert into t
    select '小強',    '語文',      80 union all
    select '小明',    '數學',      60 union all
    select '小偉',    '語文',      50 union all
    select '小東',    '語文',      68 union all
    select '小東',    '數學',      88 union all
    select '小強',    '化學',      96 union all
    select '小偉',    '化學',      76 union all
    select '小強',    '數學',      83 union all
    select '小偉',    '化學',      72 union all
    select '小強',    '英語',      80 union all
    select '小明',    '物理',      68select a.* from t a
    join
    (
    select 姓名,min(分數)as 分數 from t group by 姓名 having min(分數)>=80
    )b on a.姓名=b.姓名姓名         科目         分數          
    ---------- ---------- ----------- 
    小強         英語         80
    小強         數學         83
    小強         化學         96
    小強         語文         80(4 row(s) affected)
      

  6.   

    siudong1986() ( ) 信誉:100    Blog   加为好友  2007-06-23 08:44:12  得分: 0  
     
     
       上面那种我试过查不出数据的~~~
      
     
    ----------
    哪個?试用一条SQL语句,选取全部科目都在80分以上的学生名单!
    ---------
    這個稍微有點歧義。1.學生在其選取的科目中,沒有分數在80分以下的就是Haiwer(海阔天空)的和我寫的第二個2.學生必須選取了所有的科目,並且沒有分數在80分以下的就是我寫的第一個