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]