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

   ### Which version of ShardingSphere did you use?
   
   5.0.0
   
   ### Which project did you use? ShardingSphere-JDBC or ShardingSphere-Proxy?
   
   sharding-jdbc
   
   ### Expected behavior
   
   ```sql
   SELECT
        b.hashchildarea,
        b.regname regionName,
        ifnull( t.settleNum, 0 ) settleNum,
        ifnull( t.settleNumAll, 0 ) settleNumAll,
        ifnull( t2.shouldSettle, 0 ) shouldSettle,
        ifnull( t2.totalSob, 0 ) totalSob,
        ifnull( t2.totalSobVile, 0 ) totalSobVile,
        ifnull( t2.totalSobComm, 0 ) totalSobComm,
        b.regionid regionId,
        ifnull( t1.totalVoucher, 0 ) totalVoucher,
        ifnull( t1.totalVoucherCur, 0 ) totalVoucherCur,(
        SELECT
                count( id ) 
        FROM
                bus_regions 
        WHERE
                regionid LIKE concat( b.regionid, '%' ) 
                AND hashchildarea = 1 
        ) totalRegion,
        (
        SELECT
                count( id ) 
        FROM
                bus_regions bu 
        WHERE
                regionid LIKE concat( t2.ca, '%' ) 
                AND hashchildarea = 1 
        AND EXISTS ( SELECT 1 FROM tb_finance_sob sob WHERE sob.region_id = 
bu.regionid )) totalRegionOnSob,
        (
        SELECT
                count(
                DISTINCT ( region_id )) 
        FROM
                tb_finance_sob s 
        WHERE
                region_id LIKE concat( t2.ca, '%' ) 
                AND length( region_id )> 12 
                AND EXISTS (
                SELECT
                        1 
                FROM
                        tb_finance_settle_accounts_record r 
                WHERE
                        s.id = r.sob_id 
                        AND settle_accounts_date BETWEEN ? 
                AND ?)) totalSobCommSettle,
        (
        SELECT
                count(
                DISTINCT ( region_id )) 
        FROM
                tb_finance_sob s 
        WHERE
                region_id LIKE concat( t2.ca, '%' ) 
                AND length( region_id )= 12 
                AND EXISTS (
                SELECT
                        1 
                FROM
                        tb_finance_settle_accounts_record r 
                WHERE
                        s.id = r.sob_id 
                        AND settle_accounts_date BETWEEN ? 
                AND ?)) totalSobVileSettle 
   FROM
        bus_regions b
        LEFT JOIN (
        SELECT
                count( sob.id ) totalSob,
                region_id,
                substr(
                        region_id,
                1,?) ca,
                sum( CASE sob_profession_type WHEN ? THEN 1 END ) totalSobVile,
                sum( CASE sob_profession_type WHEN ? THEN 1 END ) totalSobComm,
                sum(
                CASE
                                
                                WHEN sob_enable_date BETWEEN ? 
                                AND ? THEN
                                        TIMESTAMPDIFF(
                                                MONTH,
                                                concat( sob_enable_date, '-01' 
),
                                        concat( ?, '-01' ))+ 1 
                                        WHEN sob_enable_date < ? THEN
                                        TIMESTAMPDIFF(
                                                MONTH,
                                                concat( ?, '-01' ),
                                        concat( ?, '-01' ))+ 1 
                                END 
                                ) shouldSettle 
                        FROM
                                tb_finance_sob sob 
                        WHERE
                                region_id LIKE concat(?, '%' ) 
                                AND length(
                                        substr(
                                                region_id,
                                        1,?))=? 
                        GROUP BY
                                ca 
                        ) t2 ON b.regionid = t2.ca
                        LEFT JOIN (
                        SELECT
                                substr(
                                        region_id,
                                1,?) ca,
                                sum( CASE WHEN settle_accounts_date = ? THEN 1 
END ) settleNum,
                                sum( CASE WHEN settle_accounts_date BETWEEN ? 
AND ? THEN 1 END ) settleNumAll 
                        FROM
                                tb_finance_sob sob
                                LEFT JOIN tb_finance_settle_accounts_record 
record ON sob.id = record.sob_id 
                        WHERE
                                sob.region_id LIKE concat(?, '%' ) 
                                AND length(
                                        substr(
                                                region_id,
                                        1,?))=? 
                        GROUP BY
                                ca 
                        ) t ON t2.ca = t.ca
                        LEFT JOIN (
                        SELECT
                                sum( CASE WHEN date_format( v.voucher_date, 
'%Y-%m' ) BETWEEN sob.sob_enable_date AND ? THEN 1 END ) totalVoucher,
                                sum( CASE WHEN date_format( v.voucher_date, 
'%Y-%m' ) BETWEEN ? AND ? THEN 1 ELSE 0 END ) totalVoucherCur,
                                region_id,
                                substr(
                                        region_id,
                                1,?) ca 
                        FROM
                                tb_finance_sob sob
                                LEFT JOIN tb_finance_voucher v ON sob.id = 
v.sob_id 
                        WHERE
                                region_id LIKE concat(?, '%' ) 
                                AND length(
                                        substr(
                                                region_id,
                                        1,?))=? 
                        GROUP BY
                                ca 
                        ) t1 ON b.regionid = t1.ca 
                WHERE
                        b.regionid LIKE concat(?, '%' ) 
                AND length( regionid )=? 
        LIMIT ?,?
   ```
   
   ### Actual behavior
   
   
![image](https://user-images.githubusercontent.com/26663469/146296385-9e0e4e8a-262c-4a93-adee-ff52279b1eb2.png)
   
   ```log
   Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to 
java.lang.Integer
        at 
org.apache.shardingsphere.infra.binder.segment.select.pagination.PaginationContext.getValue(PaginationContext.java:57)
        at 
org.apache.shardingsphere.infra.binder.segment.select.pagination.PaginationContext.<init>(PaginationContext.java:50)
        at 
org.apache.shardingsphere.infra.binder.segment.select.pagination.engine.LimitPaginationContextEngine.createPaginationContext(LimitPaginationContextEngine.java:38)
        at 
org.apache.shardingsphere.infra.binder.segment.select.pagination.engine.PaginationContextEngine.createPaginationContext(PaginationContextEngine.java:57)
        at 
org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext.<init>(SelectStatementContext.java:91)
        at 
org.apache.shardingsphere.infra.binder.SQLStatementContextFactory.getDMLStatementContext(SQLStatementContextFactory.java:127)
        at 
org.apache.shardingsphere.infra.binder.SQLStatementContextFactory.newInstance(SQLStatementContextFactory.java:110)
        at 
org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement.createLogicSQL(ShardingSpherePreparedStatement.java:385)
        at 
org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement.createExecutionContext(ShardingSpherePreparedStatement.java:375)
        at 
org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement.execute(ShardingSpherePreparedStatement.java:286)
        at 
org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)
        at 
org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)
        at sun.reflect.GeneratedMethodAccessor149.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)
        at com.sun.proxy.$Proxy461.query(Unknown Source)
        at sun.reflect.GeneratedMethodAccessor149.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)
        at com.sun.proxy.$Proxy461.query(Unknown Source)
        at 
com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doQuery(MybatisSimpleExecutor.java:67)
        at 
org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324)
        at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
   ```
   


-- 
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