有个问题想不通,我有一张成绩表,包含和分科成绩和总分。现在我担心表中的总分不准确,想查明是不是有四舍五入,或计算错误的情况。所以想验证下,我想查询时新增加二列,一列显示和自己当时总出来的分数,一列显示比较的结果。所以这两列是动态生成的。我的语句如下,但是无法运行,请大家帮我分析下,谢谢!
select  `科目1`,`科目2`,`科目3`,`科目4`,
`TOT`  as `原总分`,
 `科目1`+`科目2`+`科目3`+`科目4`   as `计算的总分`,
 case    
  when `原总分`=`计算的总分` then 'true'
  else 'false'
 end
from gkcj提示未知的列 原总分,这里不能用别名吗?要如何修改例子?

解决方案 »

  1.   

    select `科目1`,`科目2`,`科目3`,`科目4`,
    `TOT` as `原总分`,
    `科目1`+`科目2`+`科目3`+`科目4` as `计算的总分`,
    case 
    when `科目1`+`科目2`+`科目3`+`科目4`=`TOT` then 'true'
    else 'false'
    end
    from gkcj
      

  2.   

    select `科目1`,`科目2`,`科目3`,`科目4`,`TOT` as `原总分`, `科目1`+`科目2`+`科目3`+`科目4` as `计算的总分`, case when `原总分`=`科目1`,`科目2`,`科目3`,`科目4` then 'true'
      else 'false' end from gkcj
      

  3.   

    非常感谢!
    就是说mysql无法在这种情况下用别名吗。这个计算只是简单的相加,如果有更复杂的计算,不用别名看来不太方便。
      

  4.   

    也可以
    select *, case   
      when `原总分`=`计算的总分` then 'true'
      else 'false'
     end from (
    select `科目1`,`科目2`,`科目3`,`科目4`,
    `TOT` as `原总分`,
     `科目1`+`科目2`+`科目3`+`科目4` as `计算的总分`
    from gkcj ) a
      

  5.   

    三楼的例子运行不了。
    ACMAIN_CHM 和 wwwb 的4楼例子都可以用,两种角度都不错,谢谢。
      

  6.   

    select `科目1`,`科目2`,`科目3`,`科目4`,`TOT` as `原总分`, `科目1`+`科目2`+`科目3`+`科目4` as `计算的总分`, case when `原总分`=`科目1`+`科目2`+`科目3`+`科目4` then 'true'
      else 'false' end from gkcj