--所有成绩中有6门以上不及格的班级
select 班级,count(1) as coun
from tablename
where 成绩 = '不及格'
group by 班级
having count(1) > 6

解决方案 »

  1.   

    declare @t table(班级 varchar(10),学号 varchar(10),姓名 varchar(10),学年 varchar(10),学期 int,成绩 varchar(10))
    insert @t
    select '1班','200001','张三','2000-2001',1,'不及格' union all
    select '1班','200001','张三','2000-2001',1,'50' union all
    select '1班','200001','张三','2000-2001',1,'作弊' union all
    select '2班','200001','李四','2000-2001',1,'85' union all
    select '2班','200001','李四','2000-2001',1,'65' union all
    select '2班','200001','李四','2000-2001',1,'缺考'select * from @t a 
    where (select count(*) from @t where 班级= a.班级 and 学号 = a.学号 and 
    ((isnumeric(成绩) = 1 and cast(成绩 as int) < 60) or (isnumeric(成绩) = 0 and 成绩 in('不及格','作弊','缺考')) )) >2    /*在此指定要查询的不及格门数*//*结果
    班级 学号    姓名    学年        学期  成绩
    1班 200001 张三     2000-2001 1 不及格
    1班 200001 张三     2000-2001 1 50
    1班 200001 张三     2000-2001 1 作弊
    */