select m.班级,m.考试科目,m.考试时间,(select count(班级) from m where m.考生成绩!<60 group by 班级)/(select count(班级) from m group by 班级)
from (select * from s INNER JOIN p ON s.学号=p.学号) AS m
group by m.班级
---round(0.23,2)
==0.23,  --2为精度

解决方案 »

  1.   

    select m.班级,m.考试科目,m.考试时间,round((select count(班级) from m where m.考生成绩!<60 group by 班级)*1.0/(select count(班级) from m group by 班级),2)
    from (select * from s INNER JOIN p ON s.学号=p.学号) AS m
    group by m.班级
      

  2.   

    select s.考生班级,p.考试科目,p.考试时间,(select count(*)from s inner join p on s.考生编号=p.考生编号 where p.考生成绩>=60 and p.考试科目=‘数据结构’and p.考试时间=‘2002-1-25’)*1.0/(select count(*)from s inner join p on s.考生编号=p.考生编号  where p.考试科目=‘数据结构’and p.考试时间=‘2002-1-25’)
     from s inner join p
    group by s.考生班级,p.考试科目,p.考试时间
    没有语法错误,但结果不对!我的程序有什么问题吗???