comecny opened a new issue, #18953:
URL: https://github.com/apache/shardingsphere/issues/18953

   
   
   
   
   Caused by: java.lang.NullPointerException
        at 
org.apache.shardingsphere.sharding.merge.dql.groupby.GroupByMemoryMergedResult.getValueCaseSensitiveFromTables(GroupByMemoryMergedResult.java:135)
        at 
org.apache.shardingsphere.sharding.merge.dql.groupby.GroupByMemoryMergedResult.getValueCaseSensitive(GroupByMemoryMergedResult.java:125)
        at 
org.apache.shardingsphere.sharding.merge.dql.groupby.GroupByMemoryMergedResult.init(GroupByMemoryMergedResult.java:73)
        at 
org.apache.shardingsphere.sharding.merge.dql.groupby.GroupByMemoryMergedResult.init(GroupByMemoryMergedResult.java:53)
        at 
org.apache.shardingsphere.infra.merge.result.impl.memory.MemoryMergedResult.<init>(MemoryMergedResult.java:51)
        at 
org.apache.shardingsphere.sharding.merge.dql.groupby.GroupByMemoryMergedResult.<init>(GroupByMemoryMergedResult.java:56)
        at 
org.apache.shardingsphere.sharding.merge.dql.ShardingDQLResultMerger.getGroupByMergedResult(ShardingDQLResultMerger.java:118)
        at 
org.apache.shardingsphere.sharding.merge.dql.ShardingDQLResultMerger.build(ShardingDQLResultMerger.java:86)
        at 
org.apache.shardingsphere.sharding.merge.dql.ShardingDQLResultMerger.merge(ShardingDQLResultMerger.java:64)
        at 
org.apache.shardingsphere.infra.merge.MergeEngine.executeMerge(MergeEngine.java:78)
        at 
org.apache.shardingsphere.infra.merge.MergeEngine.merge(MergeEngine.java:67)
        at 
org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement.mergeQuery(ShardingSpherePreparedStatement.java:487)
        at 
org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement.getResultSet(ShardingSpherePreparedStatement.java:435)
        at 
org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getFirstResultSet(DefaultResultSetHandler.java:174)
        at 
org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:145)
        at 
org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:57)
        at 
org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:70)
        at 
org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:57)
        at 
org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:259)
        at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:132)
        at 
org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:105)
        at 
org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:81)
        at 
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:104)
        ... 51 more
   
   
   
   sql :: 
   
   select      sum(m.LONG_MONEY)     LONG_MONEY,
                  sum(m.SHORT_MONEY)    SHORT_MONEY,
                  sum(m.longShortMoney) LONG_SHORT_MONEY,
                  sum(m.toAuditMoney)   TO_AUDIT_MONEY,
                  sum(m.cancelMoney)    CANCEL_MONEY,
                  sum(m.MONEY)          TO_CANCEL_MONEY
           from
           (
           select t.ID,
                  t.RESULT_ID,
                  t.SERIAL_NUMBER,
                  t.DATA_RESOURCE,
                  t.REPORT_DEPT,
                  t.BANK_ACCT,
                  t.INTERFACE_NAME,
                  t.INTERFACE_CODE,
                  DATE_FORMAT(T.CLEAR_DATE, '%Y-%m-%d')                     
CLEAR_DATE,
                  DATE_FORMAT(T.CHANGE_DATE, '%Y-%m-%d')                    
CHANGE_DATE,
                  (t.MONEY - coalesce(p.money3, 0) - coalesce(p.money1, 0)) 
MONEY,
                  case t.DATA_TYPE
                      when '1' then (t.MONEY - coalesce(p.money3, 0) - 
coalesce(p.money1, 0))
                      else 0 end                                            
LONG_MONEY,
                  case t.DATA_TYPE
                      when '2' then (t.MONEY - coalesce(p.money3, 0) - 
coalesce(p.money1, 0))
                      else 0 end                                            
SHORT_MONEY,
                  t.money                                                   
longShortMoney,
                  p.money1                                                  
toAuditMoney,
                  p.money3                                                  
cancelMoney,
                  t.BUSI_TYPE,
                  t.CANCEL_TYPE,
                  t.DATA_TYPE,
                  t.CANCEL_STATE,
                  t.CANCEL_USER,
                  t.AUDIT_USER,
                  t.ADD_TIME,
                  t.PARENT_ID,
                  t.ADD_USER,
                  t.AUDIT_TIME,
                  I.BUSI_TYPE                                               
I_BUSI_TYPE
           from YP_BANKRECO_LONGSHORT_MONEY t
           left join (
               select sum(case p.CANCEL_STATE when '1' then p.money else 0 end) 
money1,
                      sum(case p.CANCEL_STATE when '2' then p.money else 0 end) 
money2,
                      sum(case p.CANCEL_STATE when '3' then p.money else 0 end) 
money3,
                      p.parent_id
               from YP_BANKRECO_LONGSHORT_MONEY p
         where p.parent_id <> -1 
               group by p.parent_id
           ) p on t.id = p.parent_id
                    left join DIM_BFJ_ACCT A on T.BANK_ACCT = A.B_ACCT
                    left join DIM_BI I on T.INTERFACE_CODE = I.BI_CODE
           where t.parent_id = -1
           ) m
           where 1 = 1 
           and m.LONG_MONEY + m.SHORT_MONEY > 0;
   
   ddl:
   
   CREATE TABLE `yp_bankreco_longshort_money` (
     `ID` bigint(20) NOT NULL,
     `RESULT_ID` bigint(20) DEFAULT NULL,
     `SERIAL_NUMBER` varchar(128) DEFAULT NULL,
     `DATA_RESOURCE` varchar(128) DEFAULT NULL,
     `REPORT_DEPT` varchar(128) DEFAULT NULL,
     `BANK_ACCT` varchar(32) DEFAULT NULL,
     `INTERFACE_NAME` varchar(128) DEFAULT NULL,
     `INTERFACE_CODE` varchar(32) DEFAULT NULL,
     `CLEAR_DATE` date DEFAULT NULL,
     `CHANGE_DATE` date DEFAULT NULL,
     `MONEY` decimal(31,2) DEFAULT NULL,
     `BUSI_TYPE` varchar(32) DEFAULT NULL,
     `CANCEL_TYPE` varchar(32) DEFAULT NULL,
     `DATA_TYPE` char(1) DEFAULT NULL,
     `CANCEL_STATE` varchar(32) DEFAULT NULL,
     `CANCEL_USER` varchar(32) DEFAULT NULL,
     `AUDIT_USER` varchar(64) DEFAULT NULL,
     `ADD_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE 
CURRENT_TIMESTAMP,
     `PARENT_ID` bigint(20) DEFAULT NULL,
     `ADD_USER` varchar(64) DEFAULT NULL,
     `AUDIT_TIME` date DEFAULT NULL,
     `REMARK` varchar(2000) DEFAULT NULL,
     `FRIEND_ID` bigint(20) DEFAULT NULL,
     `REPORT_STATUS` varchar(4) DEFAULT 'N',
     PRIMARY KEY (`ID`)
   ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
   
   CREATE TABLE `dim_bfj_acct` (
     `id` int(11) NOT NULL,
     `b_acct` varchar(32) NOT NULL,
     `acct_code` varchar(32) NOT NULL DEFAULT 'n/a',
     `code_name` varchar(128) NOT NULL,
     `acct_name` varchar(128) DEFAULT NULL,
     `b_name` varchar(128) NOT NULL,
     `bank_kind` char(1) DEFAULT NULL,
     `opening_bank` varchar(128) DEFAULT NULL,
     `opening_bank_location` varchar(128) DEFAULT NULL,
     `bank_branch_name` varchar(128) DEFAULT NULL,
     `account_name` varchar(128) DEFAULT NULL,
     `profile_name` varchar(128) DEFAULT NULL,
     `account_direction` char(1) DEFAULT NULL,
     `account_nature` char(1) DEFAULT NULL,
     `account_type` char(1) DEFAULT NULL,
     `account_status` char(1) DEFAULT NULL,
     `start_date` date NOT NULL,
     `close_date` date NOT NULL DEFAULT '8888-08-08',
     `valid` char(1) DEFAULT NULL,
     `memo` varchar(1024) DEFAULT NULL,
     `ts_c` varchar(32) DEFAULT NULL,
     `bank_code` varchar(16) NOT NULL,
     `account_nature2` char(1) DEFAULT NULL,
     `user_id` int(11) DEFAULT NULL,
     `opening_bank_code` varchar(32) DEFAULT NULL,
     `prov_branch_name` varchar(128) DEFAULT NULL,
     `update_date` varchar(32) DEFAULT NULL,
     `expect_rate` decimal(6,5) DEFAULT NULL,
     `type` varchar(1) DEFAULT NULL,
     `current_rate` decimal(6,5) DEFAULT NULL,
     `current_deposit` decimal(9,2) DEFAULT NULL,
     `currency` varchar(128) NOT NULL DEFAULT 'cny',
     PRIMARY KEY (`id`)
   ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
   
   
   CREATE TABLE `dim_bi` (
     `id` int(11) NOT NULL,
     `type` char(2) DEFAULT NULL,
     `name` varchar(128) DEFAULT NULL,
     `memo` varchar(512) DEFAULT NULL,
     `ts_c` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
     `bi_code` char(32) DEFAULT NULL,
     `user_id` int(11) DEFAULT NULL,
     `update_date` varchar(32) DEFAULT NULL,
     `busi_type` varchar(32) DEFAULT NULL,
     PRIMARY KEY (`id`)
   ) ENGINE=InnoDB DEFAULT CHARSET=utf8;


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: 
[email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to