你可以写成这种的.参照一下:
SQL> select * from dd;A          B          C          D                  EE
---------- ---------- ---------- ---------- ----------
A          B          C          D                   2
A          B          E          F                   3
C          D          G          H                   4
A          C          E          F                   5SQL> SELECT a,SUM(decode(a,'A',ee,1)) FROM dd GROUP  BY a;A          SUM(DECODE(A,'A',EE,1))
---------- -----------------------
A                               10
C                                1SQL> SELECT a,SUM(decode(a,'A',ee,1))/1 FROM dd GROUP  BY a;A          SUM(DECODE(A,'A',EE,1))/1
---------- -------------------------
A                                 10
C                                  1SQL>

解决方案 »

  1.   

    当月日历天数:SELECT to_number( to_char(last_day(trunc(SYSDATE)),'DD')) from dual
    你遇到的问题好像跟这个无关
      

  2.   

    我的意思是 字段1=″000″时,字段2的值=SUM(字段3)÷当月日历天数 ,你的sum写到括号外面不对吧,我主要是想知道字段1应该怎么写,因为DECODE(a.字段1,000,ROUND(SUM(a.字段3)/31,1))是对的,我觉得错误就在字段1,可能是不是要跟后面那个sum 用什么函数配起来才行。因为我去掉那个sum或者字段1前面加sum都可以算出来值,但是现在只是字段1=000 时SUM(字段3)/31
      

  3.   

    楼主这么写肯定是不对,除非你的‘字段1’是a.mc,a.dw,b.NY其中的一个,否则你不能用聚合函数
    sum(),至于sql语句对不对可以再验证。
      

  4.   

    补充:
    如果你要判断‘字段1’而且还必须是group by a.mc,a.dw,b.NY,那就要用到sum(decode(字段1,,))的方法,而不能用decode(字段1,,sum())。
      

  5.   

    我还是有点不懂,要是那么写的话,结果就不对了吧,DECODE完以后再SUM和DECODE完后SUM 的结果不一样吧,这里是字段3的和除以日历天数,不是字段3除以日历天数再和
    请帮帮忙吧,我好急
      

  6.   

    你把DECODE(a.字段1,000,ROUND(SUM(a.字段3)/31,1)) 改写成这样试试:
    round(sum(decode(字段1,'000',字段3,0))/日历天数)