NVL(DECODE(DECODE(I.GENDKG,'0','0',(SUM(M1.URIKG)/I.GENDKG)),'0',0) GENOW,0) AS GENOWA错误:
ORA-00909 invalid number of arguments 
请解决

解决方案 »

  1.   

    说明你urikg或者gendkg里必定有个出现了非数字
      

  2.   

    第一,你的逻辑有问题,似乎并不需要两个decode,或者说不用写得这么复杂.
    第二,GENOW前应该有个逗号吧
      

  3.   

    NVL(DECODE(DECODE(I.GENDKG,'0','0',(SUM(M1.URIKG)/I.GENDKG)),'0',0) GENOW,0) AS GENOWA 去掉那个 GENOW 试一下
      

  4.   

    NVL(DECODE(DECODE(I.GENDKG,'0','0',(SUM(M1.URIKG)/I.GENDKG)),'0',0) GENOW,0) AS GENOWA
        |      |                        |_____________________||      |
        |      |_______________________________________________|      |
        |_____________________________________________________________|      所以可以简化成NVL(x GENOW, 0) as genow, 这个肯定不符合NVL的语法,参数错误
      

  5.   

    括号太多了,你自己都看混了。为何不
    分成多行写呢?
    比如
    NVL(
      DECODE(
      DECODE(I.GENDKG,'0','0',(
        SUM(M1.URIKG)/I.GENDKG)),'0',0) GENOW,0) AS GENOWA ....这样你可以很容易的看到出了什么问题了!