本帖最后由 aaabbb1123 于 2011-04-20 21:06:21 编辑

解决方案 »

  1.   

    m_debit_amt这个值是什么类型?
      

  2.   

    表结构如下
    -- Create table
    create table BDPC_SUB_CONVERT
    (
      SUB_TYPE     VARCHAR2(1),
      OLD_SUB_CODE VARCHAR2(10),
      OLD_SUB_NAME VARCHAR2(60),
      NEW_SUB_CODE VARCHAR2(10),
      NEW_SUB_NAME VARCHAR2(60),
      CVT_TYPE     VARCHAR2(1),
      DATA_DATE    VARCHAR2(10)
    )-------------------------------
    -- Create table
    create table BDPF_SUB_ACCOUNT
    (
      DATA_DATE         VARCHAR2(10),
      BRAN_CODE         VARCHAR2(10),
      CURR_CODE         VARCHAR2(2),
      SUB_CODE          VARCHAR2(8),
      LAST_Y_DEBIT_BAL  NUMBER(16,2),
      LAST_Y_CREDIT_BAL NUMBER(16,2),
      Y_DEBIT_AMT       NUMBER(16,2),
      Y_CREDIT_AMT      NUMBER(16,2),
      LAST_M_DEBIT_BAL  NUMBER(16,2),
      LAST_M_CREDIT_BAL NUMBER(16,2),
      M_DEBIT_AMT       NUMBER(16,2),
      M_CREDIT_AMT      NUMBER(16,2),
      LAST_T_DEBIT_BAL  NUMBER(16,2),
      LAST_T_CREDIT_BAL NUMBER(16,2),
      T_DEBIT_AMT       NUMBER(16,2),
      T_CREDIT_AMT      NUMBER(16,2),
      LAST_D_DEBIT_BAL  NUMBER(16,2),
      LAST_D_CREDIT_BAL NUMBER(16,2),
      D_DEBIT_AMT       NUMBER(16,2),
      D_CREDIT_AMT      NUMBER(16,2),
      DEBIT_BAL         NUMBER(16,2),
      CREDIT_BAL        NUMBER(16,2),
      LAST_Y_COUNT      INTEGER,
      Y_OPEN_COUNT      INTEGER,
      Y_CLOSE_COUNT     INTEGER,
      LAST_M_COUNT      INTEGER,
      M_OPEN_COUNT      INTEGER,
      M_CLOSE_COUNT     INTEGER,
      LAST_T_COUNT      INTEGER,
      T_OPEN_COUNT      INTEGER,
      T_CLOSE_COUNT     INTEGER,
      LAST_D_COUNT      INTEGER,
      D_OPEN_COUNT      INTEGER,
      D_CLOSE_COUNT     INTEGER,
      ACCT_COUNT        INTEGER,
      Y_DEBIT_CNT       INTEGER,
      Y_CREDIT_CNT      INTEGER,
      M_DEBIT_CNT       INTEGER,
      M_CREDIT_CNT      INTEGER,
      T_DEBIT_CNT       INTEGER,
      T_CREDIT_CNT      INTEGER,
      D_DEBIT_CNT       INTEGER,
      D_CREDIT_CNT      INTEGER,
      SUM_DEBIT_ACCUM   NUMBER(16,2),
      SUM_CREDIT_ACCUM  NUMBER(16,2),
      M_DEBIT_ACCUM     NUMBER(16,2),
      M_CREDIT_ACCUM    NUMBER(16,2),
      S_DEBIT_ACCUM     NUMBER(16,2),
      S_CREDIT_ACCUM    NUMBER(16,2),
      Y_DEBIT_ACCUM     NUMBER(16,2),
      Y_CREDIT_ACCUM    NUMBER(16,2),
      LAST_UPD_DATE     VARCHAR2(10)
    )
      

  3.   

    自己结贴....ORACLE BUG ....group by 求和...如果不用加order by有时候会报错..加上order by之后此问题解决
      

  4.   

    group by不一定要加order by啊.
      

  5.   

    听说是Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 的一个bug,group by后没有排序,以前的版本默认是排序的,具体为什么求和跟排序有关,这就orcle的内部实现问题了
      

  6.   

    我是楼主....查阅完相关资料后,总结下吧
    Oracle Database 10g R2 .4以下的版本都有这个问题...
    是由于GROUP BY 排序使用HASH值...不是像9I一样使用SORT...
    具体原因我也不清楚,反正网上都这么说的然后有个参数可以改为不用HAHS排序来解决这个问题,参数名字忘记了(百度搜 oracle group bug就找得到)修改参数后要重启数据库.还有就是GROUP BY后面加ORDER BY 排序也可以解决这个问题希望对其他人有帮助...不要像我一样纠结一天时间