case when sum(a.e_11)=0 or sum(a.c_11)=0 or sum(b.c_55*a.c_11)=0 then 0 else round(((sum(b.e_55*a.e_11)/sum(a.e_11)-sum(b.c_55*a.c_11)/ sum(a.c_11))/ sum(b.c_55*a.c_11)/ sum(a.c_11),4)+1)*100 end  k
缺失右括号  怎么回事?谢谢各位大神  求帮助

解决方案 »

  1.   

    round那里有问题啊
      

  2.   

    case 
      when sum(a.e_11)=0 or sum(a.c_11)=0 or sum(b.c_55*a.c_11)=0 
        then 0 
      else (
           round(
                 (sum(b.e_55*a.e_11)/sum(a.e_11)-sum(b.c_55*a.c_11)/ sum(a.c_11))/ sum(b.c_55*a.c_11)/ sum(a.c_11),4
                )+1
           )*100 
        end  k
    你是取小数点后的4位
      

  3.   

    不知道楼主看出来了没有,换行了可能看不习惯了,我再明说一下:ROUND后面的3个左括号变为2个,被干掉的那一个左括号提到ROUND前面去。
    不要将一条语句写一长条,不方便检查错误。眼睛都看花了,可能都看不出来。特别是嵌套多的情况下。