做了个临时表,想把列cs除以zs,然后小数点后取两位select xh,mc,zs,count(*) as cs into #a from oper group by xh,mcselect xh,mc,((cs/zs) as decimal(18,2)) from #a   -->错误提示as附近有语法错误
select xh,mc,(cs/zs) AS Per from #a ---->直接这样,列Per则全部为0 

解决方案 »

  1.   

    select xh,mc,cast((cs*1.0/zs) as decimal(18,2)) from #a 
      

  2.   

    select xh,mc,(CAST c(s/zs) as decimal(18,2)) from #a 
      

  3.   

    select xh,mc,(cs*1.0/zs) AS Per from #a
      

  4.   

    cast((cs*1.0/zs) as decimal(18,2))
      

  5.   

    select xh,mc,CONVERT(DECIMAL(18,2),cs)/zs) AS Per from #a 
      

  6.   


    select xh,mc,cast(cs*1.00/zs as decimal(10,2)) AS Per from #a
      

  7.   

    select xh,mc,CONVERT(DECIMAL(18,2),cs)/zs AS Per from #a 
    还多个括号
    不过你不判断分母为0
      

  8.   

    select xh,mc,(CAST c(s/zs) as decimal(14,2)) from #a 
    加类型转换就可以了
      

  9.   

    select xh,mc,case when not zs=0  cast((cs*1.0/zs) as decimal(18,2) else 0 end) from #a