本帖最后由 xfy8xfy8 于 2012-09-30 21:37:44 编辑

解决方案 »

  1.   

    我试着就判断yw成绩的档次,并填写到ywdc中,就以下的一段程序
    create procedure syzx.student_getGrade
    (biaozhi char(6)) 
    BEGIN
    declare ywdc_grade char;  
    select ywdc into ywdc_grade from cj_finish where biaozhi=biaozhi;  
    if ywdc_grade>=120 then 
    select ywdc_grade,'A';  
    elseif ywdc_grade<120 and ywdc_grade>=110 then 
    select ywdc_grade,'B';  
    elseif ywdc_grade<110 and ywdc_grade>=100 then 
    select ywdc_grade,'C';  
    else 
    select ywdc_grade,'D';  
    end if;
    END
    但是没有反应,请问如何修改。谢谢
      

  2.   

    最简单的思路就是如下。update cj_finish
    set ywdc=case when yw>=120 then 'A' when yw>=110 then 'B' when yw>=100 then 'C' else 'D' end,
    sxdc=case when sx>=120 then 'A' when sx>=110 then 'B' when sx>=100 then 'C' else 'D' end,
    yydc=case when yy>=120 then 'A' when yy>=110 then 'B' when yy>=100 then 'C' else 'D' end
      

  3.   

    或者复杂一点儿的如下。
    update cj_finish
    set ywdc=etl(interval(yw,0,100,110,120),'D','C','B','A'),
    sxdc=etl(interval(sx,0,100,110,120),'D','C','B','A'),
    yydc=etl(interval(yy,0,100,110,120),'D','C','B','A');
      

  4.   

    那这个分数(120  110  100等)能不能用某一个变量来代替呢?因为江苏高考档次的划分是以人数的百分比划分。如A+取参加考试的总人数的10%,A取25%,B+取40%,B取50%,等等。也就是结合第n大的方法,自动判断这个ABCD的分数应是多少?麻烦您再帮一下。谢谢
      

  5.   

    为什么不在程序端做好呢。然后插入不好了中。比如php页面的。//接收传入的分数并赋值,xx为传入的分数
    $yw = xx;
    $sx = xx;
    $yy = xx;//接收传入的档值并赋值,xx为传入的档值
    $a = xx;
    $b = xx;
    $c = xx; //小于c的都是d//语文比较
    if ($yw > $a){
    $ywdc = 'a';
    }elseif ($yw > $b){
    $ywdc = 'b';
    }elseif ($yw > $c){
    $ywdc = 'c';
    }else {
    $ywdc = 'd';
    }//数学比较
    if ($sx > $a){
    $sxdc = 'a';
    }elseif ($sx > $b){
    $sxdc = 'b';
    }elseif ($sx > $c){
    $sxdc = 'c';
    }else {
    $sxdc = 'd';
    }//英文比较
    if ($yy > $a){
    $yydc = 'a';
    }elseif ($yy > $b){
    $yydc = 'b';
    }elseif ($yw > $c){
    $yydc = 'c';
    }else {
    $yydc = 'd';
    }$str = "insert into cj_finish values($yw,$ywdc,$sx,$sxdc,$yy,$yydc)";
    这样不就可以了吗?
      

  6.   


    谢谢您,我是新手,暂时还不会用PHP,我现在用navicat来操作mysql,正在准备找什么样的应用程序来学习,虽然上面的程序还看不懂,但是您给了我一个想要的东西,那就是我学了mysql后下一步我需要学什么。
      

  7.   

    关键这个档值,在每次考试中会变化的,而这个档值取多少是由参加考试人数的百分比决定的,这个百分比是不变的,如A+取参加考试的总人数的10%,A取25%,B+取40%,B取50%,等等。如何能实现自动判断这个ABCD的档值应是多少?谢谢