我想可能一条sql语句解决不了

解决方案 »

  1.   

    每个专业里每个同学的根据专业均分的本专业排名
    select * from 表1 order by 专业均分 desc group by 专业求优秀 良好 中等 及格 不及格个是多少人
    select count(优秀),count(良好),count(中等),count(及格),count(不及格) from 表2在VFP中这样也应该是可以能运行的
      

  2.   

    对不起,刚才写错了
    每个专业里每个同学的根据专业均分的本专业排名 应该是:
    select * from 表1 group by 专业 order by 专业均分 desc
      

  3.   

    我想表1中的专业排名应该编程序实现,方法如下:
    排名=1
    专业名=第一条记录的专业名当 记录没有结束
        如果 专业名《》当前记录的专业名
            排名=1
        如果结束
        当前记录的专业排名=排名
        排名=排名+1
        记录的下一条
    当循环我不会使用vfp,能不能将如何真正实现的方法和代码写一下
      

  4.   

    学年学期  学号  姓名  专业  班号  课程号  课程名  分数  学时  学分  学习类别   (字段)
    求表1:学号  姓名   专业  专业均分  专业排名  专业总人数
    注:我不知道怎么求专业排名
    专业均分是:  所有(分数×学分)之和/总学时数
    select sum(分数×学分)/sum(学时) from tablename group by 学号表2:  课程号  课程名  学习类别  考生人数 平均分  学分  学时  优秀  良好  中等  及格   不及格
    注:假设95分(包括95)以上优秀,85(包括85)-94良好,75(包括75)-84中等,
    60(包括60)-74及格,60以下不及格
    select *,
    sum(case when 专业均分 between 95 and 100 then 1 else 0 end ) as 优秀
    sum(case when 专业均分 between 85 and 94 then 1 else 0 end ) as 良好
    sum(case when 专业均分 between 75 and 84 then 1 else 0 end ) as 中等
    sum(case when 专业均分 between 60 and 74 then 1 else 0 end ) as 及格
    sum(case when 专业均分 < 60 then 1 else 0 end ) as 不及格
    from talbname