表结构如下
表名:T1ID      Name       Subject         Score
1       李军       语文            78
2       李军       数学            63
3       王明       语文            58
4       王明       数学            67
5       李军       英语            49
6       陈含       语文            90
……
……
……
说明:科目有很多,不只是上面出现的语文,数学,英语。要求查询出至少有两门学科(包含两门)及格的学生姓名
谢谢

解决方案 »

  1.   

    select name from t1 where score >= 60 group by name having count(*) >= 2
      

  2.   

    if object_id('pubs..T1') is not null
       drop table T1
    gocreate table T1(ID int,Name varchar(10),Subject varchar(10),Score int)
    insert into T1(ID,Name,Subject,Score) values(1,       '李军',       '语文',            78)
    insert into T1(ID,Name,Subject,Score) values(2,       '李军',       '数学',            63)
    insert into T1(ID,Name,Subject,Score) values(3,       '王明',       '语文',            58)
    insert into T1(ID,Name,Subject,Score) values(4,       '王明',       '数学',            67)
    insert into T1(ID,Name,Subject,Score) values(5,       '李军',       '英语',            49)
    insert into T1(ID,Name,Subject,Score) values(6,       '陈含',       '语文',            90)
    goselect name from t1 where score >= 60 group by name having count(*) >= 2drop table T1/*
    name       
    ---------- 
    李军(所影响的行数为 1 行)
    */
      

  3.   

    --过滤Score >= 60 后,按Name分组,取记录数>=2的姓名select Name 
    from T1 
    where Score >= 60 
    group by Name 
    having count(*) >= 2