现有表,结构如下
xh,xnxq,kch,ksxz,fs
分别表示“学号,学期,课程号,考试性质,分数”
学生成绩的分学期保存,如果考试成绩不合格,则参加补考,可以有多次补考机会,考试性质代码不同。如果一个学生同一学期,同一课程号的成绩不合格,则记一门课程不及格,不同学期的同一课程代码则记为多门课程,如英语课程分四学期开设,都是同一代码,但应记四门课。问题,1.如何查询到目前为止还有不及格的学生的信息
2.如果查询不及格门数大于指定数目的不及格的学生的信息

解决方案 »

  1.   

    --1
    select * from tb a where not exists(select 1 from tb b where a.学号=b.学号 and a.课程号=b.课程号 and b.分数>0)
    --2
    select 学号 from tb
    group by 学号,学期,课程号
    having COUNT(distinct 课程号)>num --num 指定数目????????
      

  2.   

    --1
    select 学号,学期,课程号 from tb a where not exists(select 1 from tb b where a.学号=b.学号 and a.课程号=b.课程号 and b.分数>0)
    group by 学号,学期,课程号
    --2
    select 学号,学期,课程号 from tb
    group by 学号,学期,课程号
    having COUNT(distinct 课程号)>num --num 指定数目
      

  3.   

    最好给出完整的表结构,测试数据,计算方法和正确结果.发帖注意事项
    http://topic.csdn.net/u/20091130/21/fb718680-98ff-4afb-98d8-cff2f8293ed5.html?24281
      

  4.   

     (不要高估你的汉语表达能力或者我的汉语理解能力)
       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。