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

   ### Which version of ShardingSphere did you use?
   `
   <dependency>
               <groupId>org.apache.shardingsphere</groupId>
               
<artifactId>shardingsphere-jdbc-core-spring-boot-starter</artifactId>
               <version>5.2.0</version>
   </dependency>
   `
   ### Which project did you use? ShardingSphere-JDBC or ShardingSphere-Proxy?
   ShardingSphere-JDBC
   ### Expected behavior
   I have an aggregated SQL statement for cross year queries
   `
   SELECT
        COUNT( CASE WHEN mo.order_status = 1 THEN 1 END ) AS orderCount,
        IFNULL( SUM( CASE WHEN mo.order_status = 1 THEN mo.order_amount ELSE 0 
END ), 0 ) AS orderAmount,
        COUNT( CASE WHEN mo.refund_flag = 1 THEN 1 END ) AS refundCount,
        IFNULL( SUM( CASE WHEN mo.refund_flag = 1 THEN mo.order_amount ELSE 0 
END ), 0 ) AS refundAmount,
        IFNULL( SUM( CASE WHEN mo.order_status = 1 THEN mo.pay_amount ELSE 0 
END ), 0 ) AS payAmount,
        IFNULL( SUM( CASE WHEN mo.order_status = 1 THEN mo.discount_amount ELSE 
0 END ), 0 ) AS discountAmount,
        IFNULL( SUM( CASE WHEN mo.order_status = 1 THEN mo.subsidy_amount ELSE 
0 END ), 0 ) AS subsidyAmount,
        IFNULL( SUM( CASE WHEN mo.order_status = 1 THEN mo.coupo_amount ELSE 0 
END ), 0 ) AS coupoAmount,
        IFNULL( SUM( CASE WHEN mo.order_status = 1 THEN mo.deduction_amount 
ELSE 0 END ), 0 ) AS deductionAmount 
   FROM
        meal_order mo 
   WHERE
        mo.del_flag = 0 
        AND mo.enterprise_id = '2088720477654859'
        AND ( mo.department_ids = '1001085010986913' OR mo.department_ids IN ( 
SELECT department_id FROM meal_enterprise_department WHERE 
find_in_set('1001085010986913', ancestors )) ) 
        AND mo.meal_date >= '2025-12-01'
        AND mo.meal_date <= '2026-01-01'
   `
   
   ### Actual behavior
   I divided the database and shards based on the mean_date field
   Mean_order is the data for 2026, for other years such as mean_order_2025 and 
mean_order_2024
   The current issue is that my query from December 1, 2025 to January 1, 2026 
theoretically includes data for December and January 1, 26. However, due to the 
lack of data on January 1, there is a problem with aggregation. The resulting 
data is 10018, 0, 0, 0, 0, 0, 0, 0, 0. Only orderCount has data and the sum 
seems to be invalid,
   When I searched from December 1, 2025 to January 4, 2026, because there were 
indeed consumption records on the 4th, the query was normal again. 10467, 
556500, 0, 0, 25, 1300, 300, 0, 0, 304, 900. The current problem is why the 
aggregation for December would be invalid even if there is no data on the 1st?
   The first SQL statement is:
   `
   meal ::: SELECT
           COUNT(CASE WHEN mo.order_status = 1
                                                                           THEN 
1 END)                                     AS orderCount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                                                                           THEN 
mo.order_amount ELSE 0 END), 0)            AS orderAmount,
           COUNT(CASE WHEN mo.refund_flag = 1 THEN 1 END)                       
            AS refundCount,
           IFNULL(SUM(CASE WHEN mo.refund_flag = 1 THEN mo.order_amount ELSE 0 
END), 0)     AS refundAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                                                                           THEN 
mo.pay_amount ELSE 0 END), 0)              AS payAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                                                                           THEN 
mo.discount_amount ELSE 0 END), 0)         AS discountAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                                                                           THEN 
mo.subsidy_amount ELSE 0 END), 0)          AS subsidyAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                                                                           THEN 
mo.coupo_amount ELSE 0 END), 0)            AS coupoAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                                                                           THEN 
mo.deduction_amount ELSE 0 END), 0)        AS deductionAmount
           FROM meal_order mo
           where mo.del_flag = 0
               AND mo.enterprise_id = ?
               AND (mo.department_ids = ? OR mo.department_ids IN (SELECT 
department_id
               FROM meal_enterprise_department
               WHERE find_in_set(?, ancestors))
               )
               AND mo.meal_date >= ?
               AND mo.meal_date <= ? ::: [2088720477654859, 1001085010986913, 
1001085010986913, 2025-12-01, 2026-01-01]
   `
   The second SQL statement is:
   `
   meal ::: SELECT
           COUNT(CASE WHEN mo.order_status = 1
                                                                           THEN 
1 END)                                     AS orderCount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                                                                           THEN 
mo.order_amount ELSE 0 END), 0)            AS orderAmount,
           COUNT(CASE WHEN mo.refund_flag = 1 THEN 1 END)                       
            AS refundCount,
           IFNULL(SUM(CASE WHEN mo.refund_flag = 1 THEN mo.order_amount ELSE 0 
END), 0)     AS refundAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                                                                           THEN 
mo.pay_amount ELSE 0 END), 0)              AS payAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                                                                           THEN 
mo.discount_amount ELSE 0 END), 0)         AS discountAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                                                                           THEN 
mo.subsidy_amount ELSE 0 END), 0)          AS subsidyAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                                                                           THEN 
mo.coupo_amount ELSE 0 END), 0)            AS coupoAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                                                                           THEN 
mo.deduction_amount ELSE 0 END), 0)        AS deductionAmount  
           FROM meal_order mo
           where mo.del_flag = 0
               AND mo.enterprise_id = ?
               AND (mo.department_ids = ? OR mo.department_ids IN (SELECT 
department_id
               FROM meal_enterprise_department
               WHERE find_in_set(?, ancestors))
               )
               AND mo.meal_date >= ?
               AND mo.meal_date <= ? ::: [2088720477654859, 1001085010986913, 
1001085010986913, 2025-12-01, 2026-01-04]
   `
   ### Reason analyze (If you can)
   
   ### Steps to reproduce the behavior, such as: SQL to execute, sharding rule 
configuration, when exception occur etc.
   
   ### Example codes for reproduce this issue (such as a github link).
   The first SQL log is:
   `
   Creating a new SqlSession
   SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5329d30b] 
was not registered for synchronization because synchronization is not active
   JDBC Connection 
[org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection@7aed069c]
 will not be managed by Spring
   ==>  Preparing: SELECT COUNT(CASE WHEN mo.order_status = 1 THEN 1 END) AS 
orderCount, IFNULL(SUM(CASE WHEN mo.order_status = 1 THEN mo.order_amount ELSE 
0 END), 0) AS orderAmount, COUNT(CASE WHEN mo.refund_flag = 1 THEN 1 END) AS 
refundCount, IFNULL(SUM(CASE WHEN mo.refund_flag = 1 THEN mo.order_amount ELSE 
0 END), 0) AS refundAmount, IFNULL(SUM(CASE WHEN mo.order_status = 1 THEN 
mo.pay_amount ELSE 0 END), 0) AS payAmount, IFNULL(SUM(CASE WHEN 
mo.order_status = 1 THEN mo.discount_amount ELSE 0 END), 0) AS discountAmount, 
IFNULL(SUM(CASE WHEN mo.order_status = 1 THEN mo.subsidy_amount ELSE 0 END), 0) 
AS subsidyAmount, IFNULL(SUM(CASE WHEN mo.order_status = 1 THEN mo.coupo_amount 
ELSE 0 END), 0) AS coupoAmount, IFNULL(SUM(CASE WHEN mo.order_status = 1 THEN 
mo.deduction_amount ELSE 0 END), 0) AS deductionAmount FROM meal_order mo where 
mo.del_flag = 0 AND mo.enterprise_id = ? AND (mo.department_ids = ? OR 
mo.department_ids IN (SELECT department_id FROM meal_enterprise_department WHER
 E find_in_set(?, ancestors)) ) AND mo.meal_date >= ? AND mo.meal_date <= ?
   ==> Parameters: 2088720477654859(String), 1001085010986913(String), 
1001085010986913(String), 2025-12-01(String), 2026-01-01(String)
   14:25:29.061 [http-nio-9204-exec-9] INFO  ShardingSphere-SQL - [log,74] - 
Logic SQL: SELECT
            
           COUNT(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
1 END)                                     AS orderCount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.order_amount ELSE 0 END), 0)            AS orderAmount,
           COUNT(CASE WHEN mo.refund_flag = 1 THEN 1 END)                       
            AS refundCount,
           IFNULL(SUM(CASE WHEN mo.refund_flag = 1 THEN mo.order_amount ELSE 0 
END), 0)     AS refundAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.pay_amount ELSE 0 END), 0)              AS payAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.discount_amount ELSE 0 END), 0)         AS discountAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.subsidy_amount ELSE 0 END), 0)          AS subsidyAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.coupo_amount ELSE 0 END), 0)            AS coupoAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.deduction_amount ELSE 0 END), 0)        AS deductionAmount
        
           FROM meal_order mo
           where mo.del_flag = 0
            
               AND mo.enterprise_id = ?
            
            
            
            
            
               AND (mo.department_ids = ? OR mo.department_ids IN (SELECT 
department_id
               FROM meal_enterprise_department
               WHERE find_in_set(?, ancestors))
               )
            
            
            
               AND mo.meal_date >= ?
            
            
               AND mo.meal_date <= ?
   14:25:29.061 [http-nio-9204-exec-9] INFO  ShardingSphere-SQL - [log,74] - 
SQLStatement: 
MySQLSelectStatement(super=SelectStatement(super=AbstractSQLStatement(parameterCount=5,
 parameterMarkerSegments=[ParameterMarkerExpressionSegment(startIndex=1729, 
stopIndex=1729, parameterMarkerIndex=0, parameterMarkerType=QUESTION, 
alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=1818, 
stopIndex=1818, parameterMarkerIndex=1, parameterMarkerType=QUESTION, 
alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=1940, 
stopIndex=1940, parameterMarkerIndex=2, parameterMarkerType=QUESTION, 
alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=2031, 
stopIndex=2031, parameterMarkerIndex=3, parameterMarkerType=QUESTION, 
alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=2085, 
stopIndex=2085, parameterMarkerIndex=4, parameterMarkerType=QUESTION, 
alias=Optional.empty)], commentSegments=[]), 
projections=ProjectionsSegment(startIndex=25, stopIndex=1
 619, projections=[AggregationProjectionSegment(startIndex=25, stopIndex=157, 
type=COUNT, innerExpression=(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
1 END), parameters=[CommonExpressionSegment(startIndex=31, stopIndex=156, 
text=CASE WHEN mo.order_status = 1
                
                                                                           THEN 
1 END)], alias=Optional[orderCount]), 
ExpressionProjectionSegment(startIndex=218, stopIndex=406, text=IFNULL(SUM(CASE 
WHEN mo.order_status = 1
                
                                                                           THEN 
mo.order_amount ELSE 0 END), 0), expr=FunctionSegment(startIndex=218, 
stopIndex=380, functionName=IFNULL, 
parameters=[AggregationProjectionSegment(startIndex=225, stopIndex=376, 
type=SUM, innerExpression=(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.order_amount ELSE 0 END), 
parameters=[CommonExpressionSegment(startIndex=229, stopIndex=375, text=CASE 
WHEN mo.order_status = 1
                
                                                                           THEN 
mo.order_amount ELSE 0 END)], alias=Optional.empty), 
LiteralExpressionSegment(startIndex=379, stopIndex=379, literals=0)], 
text=IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.order_amount ELSE 0 END), 0), owner=null), alias=Optional[orderAmount]), 
AggregationProjectionSegment(startIndex=417, stopIndex=462, type=COUNT, 
innerExpression=(CASE WHEN mo.refund_flag = 1 THEN 1 END), 
parameters=[CommonExpressionSegment(startIndex=423, stopIndex=461, text=CASE 
WHEN mo.refund_flag = 1 THEN 1 END)], alias=Optional[refundCount]), 
ExpressionProjectionSegment(startIndex=522, stopIndex=617, text=IFNULL(SUM(CASE 
WHEN mo.refund_flag = 1 THEN mo.order_amount ELSE 0 END), 0), 
expr=FunctionSegment(startIndex=522, stopIndex=597, functionName=IFNULL, 
parameters=[AggregationProjectionSegment(startIndex=529, stopIndex=593, 
type=SUM, innerExpression=(CASE WHEN mo.refund_flag = 1 THEN mo.order_amount 
ELSE 0 END), parameters=[CommonExpressionSegment(startIndex=533, stopIndex=592, 
text=CASE WHEN mo.refund_flag = 1 THEN mo.order_amount ELSE 0 END)], 
alias=Optional.empty), LiteralExpressionSegment(start
 Index=596, stopIndex=596, literals=0)], text=IFNULL(SUM(CASE WHEN 
mo.refund_flag = 1 THEN mo.order_amount ELSE 0 END), 0), owner=null), 
alias=Optional[refundAmount]), ExpressionProjectionSegment(startIndex=628, 
stopIndex=814, text=IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.pay_amount ELSE 0 END), 0), expr=FunctionSegment(startIndex=628, 
stopIndex=788, functionName=IFNULL, 
parameters=[AggregationProjectionSegment(startIndex=635, stopIndex=784, 
type=SUM, innerExpression=(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.pay_amount ELSE 0 END), parameters=[CommonExpressionSegment(startIndex=639, 
stopIndex=783, text=CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.pay_amount ELSE 0 END)], alias=Optional.empty), 
LiteralExpressionSegment(startIndex=787, stopIndex=787, literals=0)], 
text=IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.pay_amount ELSE 0 END), 0), owner=null), alias=Optional[payAmount]), 
ExpressionProjectionSegment(startIndex=825, stopIndex=1016, 
text=IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.discount_amount ELSE 0 END), 0), expr=FunctionSegment(startIndex=825, 
stopIndex=990, functionName=IFNULL, 
parameters=[AggregationProjectionSegment(startIndex=832, stopIndex=986, 
type=SUM, innerExpression=(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.discount_amount ELSE 0 END), 
parameters=[CommonExpressionSegment(startIndex=836, stopIndex=985, text=CASE 
WHEN mo.order_status = 1
                
                                                                           THEN 
mo.discount_amount ELSE 0 END)], alias=Optional.empty), 
LiteralExpressionSegment(startIndex=989, stopIndex=989, literals=0)], 
text=IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.discount_amount ELSE 0 END), 0), owner=null), 
alias=Optional[discountAmount]), ExpressionProjectionSegment(startIndex=1027, 
stopIndex=1217, text=IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.subsidy_amount ELSE 0 END), 0), expr=FunctionSegment(startIndex=1027, 
stopIndex=1191, functionName=IFNULL, 
parameters=[AggregationProjectionSegment(startIndex=1034, stopIndex=1187, 
type=SUM, innerExpression=(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.subsidy_amount ELSE 0 END), 
parameters=[CommonExpressionSegment(startIndex=1038, stopIndex=1186, text=CASE 
WHEN mo.order_status = 1
                
                                                                           THEN 
mo.subsidy_amount ELSE 0 END)], alias=Optional.empty), 
LiteralExpressionSegment(startIndex=1190, stopIndex=1190, literals=0)], 
text=IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.subsidy_amount ELSE 0 END), 0), owner=null), alias=Optional[subsidyAmount]), 
ExpressionProjectionSegment(startIndex=1228, stopIndex=1416, 
text=IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.coupo_amount ELSE 0 END), 0), expr=FunctionSegment(startIndex=1228, 
stopIndex=1390, functionName=IFNULL, 
parameters=[AggregationProjectionSegment(startIndex=1235, stopIndex=1386, 
type=SUM, innerExpression=(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.coupo_amount ELSE 0 END), 
parameters=[CommonExpressionSegment(startIndex=1239, stopIndex=1385, text=CASE 
WHEN mo.order_status = 1
                
                                                                           THEN 
mo.coupo_amount ELSE 0 END)], alias=Optional.empty), 
LiteralExpressionSegment(startIndex=1389, stopIndex=1389, literals=0)], 
text=IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.coupo_amount ELSE 0 END), 0), owner=null), alias=Optional[coupoAmount]), 
ExpressionProjectionSegment(startIndex=1427, stopIndex=1619, 
text=IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.deduction_amount ELSE 0 END), 0), expr=FunctionSegment(startIndex=1427, 
stopIndex=1593, functionName=IFNULL, 
parameters=[AggregationProjectionSegment(startIndex=1434, stopIndex=1589, 
type=SUM, innerExpression=(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.deduction_amount ELSE 0 END), 
parameters=[CommonExpressionSegment(startIndex=1438, stopIndex=1588, text=CASE 
WHEN mo.order_status = 1
                
                                                                           THEN 
mo.deduction_amount ELSE 0 END)], alias=Optional.empty), 
LiteralExpressionSegment(startIndex=1592, stopIndex=1592, literals=0)], 
text=IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.deduction_amount ELSE 0 END), 0), owner=null), 
alias=Optional[deductionAmount])], distinctRow=false), 
from=SimpleTableSegment(tableName=TableNameSegment(startIndex=1640, 
stopIndex=1649, identifier=IdentifierValue(value=meal_order, 
quoteCharacter=NONE)), owner=Optional.empty, alias=Optional[mo]), 
where=Optional[WhereSegment(startIndex=1662, stopIndex=2085, 
expr=BinaryOperationExpression(startIndex=1668, stopIndex=2085, 
left=BinaryOperationExpression(startIndex=1668, stopIndex=2031, 
left=BinaryOperationExpression(startIndex=1668, stopIndex=1967, 
left=BinaryOperationExpression(startIndex=1668, stopIndex=1729, 
left=BinaryOperationExpression(startIndex=1668, stopIndex=1682, 
left=ColumnSegment(startIndex=1668, stopIndex=1678, 
identifier=IdentifierValue(value=del_flag, quoteCharacter=NONE), 
owner=Optional[OwnerSegment(startIndex=1668, stopIndex=1669, 
identifier=IdentifierValue(value=mo, quoteCharacter=NONE), 
 owner=Optional.empty)]), right=LiteralExpressionSegment(startIndex=1682, 
stopIndex=1682, literals=0), operator==, text=mo.del_flag = 0), 
right=BinaryOperationExpression(startIndex=1710, stopIndex=1729, 
left=ColumnSegment(startIndex=1710, stopIndex=1725, 
identifier=IdentifierValue(value=enterprise_id, quoteCharacter=NONE), 
owner=Optional[OwnerSegment(startIndex=1710, stopIndex=1711, 
identifier=IdentifierValue(value=mo, quoteCharacter=NONE), 
owner=Optional.empty)]), 
right=ParameterMarkerExpressionSegment(startIndex=1729, stopIndex=1729, 
parameterMarkerIndex=0, parameterMarkerType=QUESTION, alias=Optional.empty), 
operator==, text=mo.enterprise_id = ?), operator=AND, text=mo.del_flag = 0
            
               AND mo.enterprise_id = ?), 
right=BinaryOperationExpression(startIndex=1798, stopIndex=1953, 
left=BinaryOperationExpression(startIndex=1798, stopIndex=1818, 
left=ColumnSegment(startIndex=1798, stopIndex=1814, 
identifier=IdentifierValue(value=department_ids, quoteCharacter=NONE), 
owner=Optional[OwnerSegment(startIndex=1798, stopIndex=1799, 
identifier=IdentifierValue(value=mo, quoteCharacter=NONE), 
owner=Optional.empty)]), 
right=ParameterMarkerExpressionSegment(startIndex=1818, stopIndex=1818, 
parameterMarkerIndex=1, parameterMarkerType=QUESTION, alias=Optional.empty), 
operator==, text=mo.department_ids = ?), right=InExpression(startIndex=1823, 
stopIndex=1953, left=ColumnSegment(startIndex=1823, stopIndex=1839, 
identifier=IdentifierValue(value=department_ids, quoteCharacter=NONE), 
owner=Optional[OwnerSegment(startIndex=1823, stopIndex=1824, 
identifier=IdentifierValue(value=mo, quoteCharacter=NONE), 
owner=Optional.empty)]), right=SubqueryExpressionSegment(subquery=Subquery
 Segment(startIndex=1844, stopIndex=1953, 
select=MySQLSelectStatement(super=SelectStatement(super=AbstractSQLStatement(parameterCount=3,
 parameterMarkerSegments=[ParameterMarkerExpressionSegment(startIndex=1729, 
stopIndex=1729, parameterMarkerIndex=0, parameterMarkerType=QUESTION, 
alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=1818, 
stopIndex=1818, parameterMarkerIndex=1, parameterMarkerType=QUESTION, 
alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=1940, 
stopIndex=1940, parameterMarkerIndex=2, parameterMarkerType=QUESTION, 
alias=Optional.empty)], commentSegments=[]), 
projections=ProjectionsSegment(startIndex=1852, stopIndex=1864, 
projections=[ColumnProjectionSegment(column=ColumnSegment(startIndex=1852, 
stopIndex=1864, identifier=IdentifierValue(value=department_id, 
quoteCharacter=NONE), owner=Optional.empty), alias=Optional.empty)], 
distinctRow=false), 
from=SimpleTableSegment(tableName=TableNameSegment(startIndex=1883, 
stopIndex=1908, identifie
 r=IdentifierValue(value=meal_enterprise_department, quoteCharacter=NONE)), 
owner=Optional.empty, alias=Optional.empty), 
where=Optional[WhereSegment(startIndex=1922, stopIndex=1952, 
expr=FunctionSegment(startIndex=1928, stopIndex=1952, functionName=find_in_set, 
parameters=[ParameterMarkerExpressionSegment(startIndex=1940, stopIndex=1940, 
parameterMarkerIndex=2, parameterMarkerType=QUESTION, alias=Optional.empty), 
ColumnSegment(startIndex=1943, stopIndex=1951, 
identifier=IdentifierValue(value=ancestors, quoteCharacter=NONE), 
owner=Optional.empty)], text=find_in_set(?, ancestors), owner=null))], 
groupBy=Optional.empty, having=Optional.empty, orderBy=Optional.empty, 
combines=[]), table=Optional.empty, limit=Optional.empty, lock=Optional.empty, 
window=Optional.empty), subqueryType=PREDICATE_SUBQUERY)), not=false), 
operator=OR, text=mo.department_ids = ? OR mo.department_ids IN (SELECT 
department_id
               FROM meal_enterprise_department
               WHERE find_in_set(?, ancestors))), operator=AND, 
text=mo.del_flag = 0
            
               AND mo.enterprise_id = ?
            
            
            
            
            
               AND (mo.department_ids = ? OR mo.department_ids IN (SELECT 
department_id
               FROM meal_enterprise_department
               WHERE find_in_set(?, ancestors))
               )), right=BinaryOperationExpression(startIndex=2015, 
stopIndex=2031, left=ColumnSegment(startIndex=2015, stopIndex=2026, 
identifier=IdentifierValue(value=meal_date, quoteCharacter=NONE), 
owner=Optional[OwnerSegment(startIndex=2015, stopIndex=2016, 
identifier=IdentifierValue(value=mo, quoteCharacter=NONE), 
owner=Optional.empty)]), 
right=ParameterMarkerExpressionSegment(startIndex=2031, stopIndex=2031, 
parameterMarkerIndex=3, parameterMarkerType=QUESTION, alias=Optional.empty), 
operator=>=, text=mo.meal_date >= ?), operator=AND, text=mo.del_flag = 0
            
               AND mo.enterprise_id = ?
            
            
            
            
            
               AND (mo.department_ids = ? OR mo.department_ids IN (SELECT 
department_id
               FROM meal_enterprise_department
               WHERE find_in_set(?, ancestors))
               )
            
            
            
               AND mo.meal_date >= ?), 
right=BinaryOperationExpression(startIndex=2069, stopIndex=2085, 
left=ColumnSegment(startIndex=2069, stopIndex=2080, 
identifier=IdentifierValue(value=meal_date, quoteCharacter=NONE), 
owner=Optional[OwnerSegment(startIndex=2069, stopIndex=2070, 
identifier=IdentifierValue(value=mo, quoteCharacter=NONE), 
owner=Optional.empty)]), 
right=ParameterMarkerExpressionSegment(startIndex=2085, stopIndex=2085, 
parameterMarkerIndex=4, parameterMarkerType=QUESTION, alias=Optional.empty), 
operator=<=, text=mo.meal_date <= ?), operator=AND, text=mo.del_flag = 0
            
               AND mo.enterprise_id = ?
            
            
            
            
            
               AND (mo.department_ids = ? OR mo.department_ids IN (SELECT 
department_id
               FROM meal_enterprise_department
               WHERE find_in_set(?, ancestors))
               )
            
            
            
               AND mo.meal_date >= ?
            
            
               AND mo.meal_date <= ?))], groupBy=Optional.empty, 
having=Optional.empty, orderBy=Optional.empty, combines=[]), 
table=Optional.empty, limit=Optional.empty, lock=Optional.empty, 
window=Optional.empty)
   14:25:29.063 [http-nio-9204-exec-9] INFO  ShardingSphere-SQL - [log,74] - 
Actual SQL: meal ::: SELECT
            
           COUNT(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
1 END)                                     AS orderCount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.order_amount ELSE 0 END), 0)            AS orderAmount,
           COUNT(CASE WHEN mo.refund_flag = 1 THEN 1 END)                       
            AS refundCount,
           IFNULL(SUM(CASE WHEN mo.refund_flag = 1 THEN mo.order_amount ELSE 0 
END), 0)     AS refundAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.pay_amount ELSE 0 END), 0)              AS payAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.discount_amount ELSE 0 END), 0)         AS discountAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.subsidy_amount ELSE 0 END), 0)          AS subsidyAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.coupo_amount ELSE 0 END), 0)            AS coupoAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.deduction_amount ELSE 0 END), 0)        AS deductionAmount
        
           FROM meal_order mo
           where mo.del_flag = 0
            
               AND mo.enterprise_id = ?
            
            
            
            
            
               AND (mo.department_ids = ? OR mo.department_ids IN (SELECT 
department_id
               FROM meal_enterprise_department
               WHERE find_in_set(?, ancestors))
               )
            
            
            
               AND mo.meal_date >= ?
            
            
               AND mo.meal_date <= ? ::: [2088720477654859, 1001085010986913, 
1001085010986913, 2025-12-01, 2026-01-01]
   14:25:29.063 [http-nio-9204-exec-9] INFO  ShardingSphere-SQL - [log,74] - 
Actual SQL: meal ::: SELECT
            
           COUNT(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
1 END)                                     AS orderCount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.order_amount ELSE 0 END), 0)            AS orderAmount,
           COUNT(CASE WHEN mo.refund_flag = 1 THEN 1 END)                       
            AS refundCount,
           IFNULL(SUM(CASE WHEN mo.refund_flag = 1 THEN mo.order_amount ELSE 0 
END), 0)     AS refundAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.pay_amount ELSE 0 END), 0)              AS payAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.discount_amount ELSE 0 END), 0)         AS discountAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.subsidy_amount ELSE 0 END), 0)          AS subsidyAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.coupo_amount ELSE 0 END), 0)            AS coupoAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.deduction_amount ELSE 0 END), 0)        AS deductionAmount
        
           FROM meal_order_2025 mo
           where mo.del_flag = 0
            
               AND mo.enterprise_id = ?
            
            
            
            
            
               AND (mo.department_ids = ? OR mo.department_ids IN (SELECT 
department_id
               FROM meal_enterprise_department
               WHERE find_in_set(?, ancestors))
               )
            
            
            
               AND mo.meal_date >= ?
            
            
               AND mo.meal_date <= ? ::: [2088720477654859, 1001085010986913, 
1001085010986913, 2025-12-01, 2026-01-01]
   <==    Columns: orderCount, orderAmount, refundCount, refundAmount, 
payAmount, discountAmount, subsidyAmount, coupoAmount, deductionAmount
   <==        Row: 10018, 0, 0, 0, 0, 0, 0, 0, 0
   <==      Total: 1
   Closing non transactional SqlSession 
[org.apache.ibatis.session.defaults.DefaultSqlSession@5329d30b]
   `
   The second SQL log is:
   `
   Creating a new SqlSession
   SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4e8615d8] 
was not registered for synchronization because synchronization is not active
   JDBC Connection 
[org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection@36340fc9]
 will not be managed by Spring
   ==>  Preparing: SELECT COUNT(CASE WHEN mo.order_status = 1 THEN 1 END) AS 
orderCount, IFNULL(SUM(CASE WHEN mo.order_status = 1 THEN mo.order_amount ELSE 
0 END), 0) AS orderAmount, COUNT(CASE WHEN mo.refund_flag = 1 THEN 1 END) AS 
refundCount, IFNULL(SUM(CASE WHEN mo.refund_flag = 1 THEN mo.order_amount ELSE 
0 END), 0) AS refundAmount, IFNULL(SUM(CASE WHEN mo.order_status = 1 THEN 
mo.pay_amount ELSE 0 END), 0) AS payAmount, IFNULL(SUM(CASE WHEN 
mo.order_status = 1 THEN mo.discount_amount ELSE 0 END), 0) AS discountAmount, 
IFNULL(SUM(CASE WHEN mo.order_status = 1 THEN mo.subsidy_amount ELSE 0 END), 0) 
AS subsidyAmount, IFNULL(SUM(CASE WHEN mo.order_status = 1 THEN mo.coupo_amount 
ELSE 0 END), 0) AS coupoAmount, IFNULL(SUM(CASE WHEN mo.order_status = 1 THEN 
mo.deduction_amount ELSE 0 END), 0) AS deductionAmount FROM meal_order mo where 
mo.del_flag = 0 AND mo.enterprise_id = ? AND (mo.department_ids = ? OR 
mo.department_ids IN (SELECT department_id FROM meal_enterprise_department WHER
 E find_in_set(?, ancestors)) ) AND mo.meal_date >= ? AND mo.meal_date <= ?
   ==> Parameters: 2088720477654859(String), 1001085010986913(String), 
1001085010986913(String), 2025-12-01(String), 2026-01-04(String)
   14:27:18.306 [http-nio-9204-exec-6] INFO  ShardingSphere-SQL - [log,74] - 
Logic SQL: SELECT
            
           COUNT(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
1 END)                                     AS orderCount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.order_amount ELSE 0 END), 0)            AS orderAmount,
           COUNT(CASE WHEN mo.refund_flag = 1 THEN 1 END)                       
            AS refundCount,
           IFNULL(SUM(CASE WHEN mo.refund_flag = 1 THEN mo.order_amount ELSE 0 
END), 0)     AS refundAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.pay_amount ELSE 0 END), 0)              AS payAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.discount_amount ELSE 0 END), 0)         AS discountAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.subsidy_amount ELSE 0 END), 0)          AS subsidyAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.coupo_amount ELSE 0 END), 0)            AS coupoAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.deduction_amount ELSE 0 END), 0)        AS deductionAmount
        
           FROM meal_order mo
           where mo.del_flag = 0
            
               AND mo.enterprise_id = ?
            
            
            
            
            
               AND (mo.department_ids = ? OR mo.department_ids IN (SELECT 
department_id
               FROM meal_enterprise_department
               WHERE find_in_set(?, ancestors))
               )
            
            
            
               AND mo.meal_date >= ?
            
            
               AND mo.meal_date <= ?
   14:27:18.306 [http-nio-9204-exec-6] INFO  ShardingSphere-SQL - [log,74] - 
SQLStatement: 
MySQLSelectStatement(super=SelectStatement(super=AbstractSQLStatement(parameterCount=5,
 parameterMarkerSegments=[ParameterMarkerExpressionSegment(startIndex=1729, 
stopIndex=1729, parameterMarkerIndex=0, parameterMarkerType=QUESTION, 
alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=1818, 
stopIndex=1818, parameterMarkerIndex=1, parameterMarkerType=QUESTION, 
alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=1940, 
stopIndex=1940, parameterMarkerIndex=2, parameterMarkerType=QUESTION, 
alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=2031, 
stopIndex=2031, parameterMarkerIndex=3, parameterMarkerType=QUESTION, 
alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=2085, 
stopIndex=2085, parameterMarkerIndex=4, parameterMarkerType=QUESTION, 
alias=Optional.empty)], commentSegments=[]), 
projections=ProjectionsSegment(startIndex=25, stopIndex=1
 619, projections=[AggregationProjectionSegment(startIndex=25, stopIndex=157, 
type=COUNT, innerExpression=(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
1 END), parameters=[CommonExpressionSegment(startIndex=31, stopIndex=156, 
text=CASE WHEN mo.order_status = 1
                
                                                                           THEN 
1 END)], alias=Optional[orderCount]), 
ExpressionProjectionSegment(startIndex=218, stopIndex=406, text=IFNULL(SUM(CASE 
WHEN mo.order_status = 1
                
                                                                           THEN 
mo.order_amount ELSE 0 END), 0), expr=FunctionSegment(startIndex=218, 
stopIndex=380, functionName=IFNULL, 
parameters=[AggregationProjectionSegment(startIndex=225, stopIndex=376, 
type=SUM, innerExpression=(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.order_amount ELSE 0 END), 
parameters=[CommonExpressionSegment(startIndex=229, stopIndex=375, text=CASE 
WHEN mo.order_status = 1
                
                                                                           THEN 
mo.order_amount ELSE 0 END)], alias=Optional.empty), 
LiteralExpressionSegment(startIndex=379, stopIndex=379, literals=0)], 
text=IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.order_amount ELSE 0 END), 0), owner=null), alias=Optional[orderAmount]), 
AggregationProjectionSegment(startIndex=417, stopIndex=462, type=COUNT, 
innerExpression=(CASE WHEN mo.refund_flag = 1 THEN 1 END), 
parameters=[CommonExpressionSegment(startIndex=423, stopIndex=461, text=CASE 
WHEN mo.refund_flag = 1 THEN 1 END)], alias=Optional[refundCount]), 
ExpressionProjectionSegment(startIndex=522, stopIndex=617, text=IFNULL(SUM(CASE 
WHEN mo.refund_flag = 1 THEN mo.order_amount ELSE 0 END), 0), 
expr=FunctionSegment(startIndex=522, stopIndex=597, functionName=IFNULL, 
parameters=[AggregationProjectionSegment(startIndex=529, stopIndex=593, 
type=SUM, innerExpression=(CASE WHEN mo.refund_flag = 1 THEN mo.order_amount 
ELSE 0 END), parameters=[CommonExpressionSegment(startIndex=533, stopIndex=592, 
text=CASE WHEN mo.refund_flag = 1 THEN mo.order_amount ELSE 0 END)], 
alias=Optional.empty), LiteralExpressionSegment(start
 Index=596, stopIndex=596, literals=0)], text=IFNULL(SUM(CASE WHEN 
mo.refund_flag = 1 THEN mo.order_amount ELSE 0 END), 0), owner=null), 
alias=Optional[refundAmount]), ExpressionProjectionSegment(startIndex=628, 
stopIndex=814, text=IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.pay_amount ELSE 0 END), 0), expr=FunctionSegment(startIndex=628, 
stopIndex=788, functionName=IFNULL, 
parameters=[AggregationProjectionSegment(startIndex=635, stopIndex=784, 
type=SUM, innerExpression=(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.pay_amount ELSE 0 END), parameters=[CommonExpressionSegment(startIndex=639, 
stopIndex=783, text=CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.pay_amount ELSE 0 END)], alias=Optional.empty), 
LiteralExpressionSegment(startIndex=787, stopIndex=787, literals=0)], 
text=IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.pay_amount ELSE 0 END), 0), owner=null), alias=Optional[payAmount]), 
ExpressionProjectionSegment(startIndex=825, stopIndex=1016, 
text=IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.discount_amount ELSE 0 END), 0), expr=FunctionSegment(startIndex=825, 
stopIndex=990, functionName=IFNULL, 
parameters=[AggregationProjectionSegment(startIndex=832, stopIndex=986, 
type=SUM, innerExpression=(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.discount_amount ELSE 0 END), 
parameters=[CommonExpressionSegment(startIndex=836, stopIndex=985, text=CASE 
WHEN mo.order_status = 1
                
                                                                           THEN 
mo.discount_amount ELSE 0 END)], alias=Optional.empty), 
LiteralExpressionSegment(startIndex=989, stopIndex=989, literals=0)], 
text=IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.discount_amount ELSE 0 END), 0), owner=null), 
alias=Optional[discountAmount]), ExpressionProjectionSegment(startIndex=1027, 
stopIndex=1217, text=IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.subsidy_amount ELSE 0 END), 0), expr=FunctionSegment(startIndex=1027, 
stopIndex=1191, functionName=IFNULL, 
parameters=[AggregationProjectionSegment(startIndex=1034, stopIndex=1187, 
type=SUM, innerExpression=(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.subsidy_amount ELSE 0 END), 
parameters=[CommonExpressionSegment(startIndex=1038, stopIndex=1186, text=CASE 
WHEN mo.order_status = 1
                
                                                                           THEN 
mo.subsidy_amount ELSE 0 END)], alias=Optional.empty), 
LiteralExpressionSegment(startIndex=1190, stopIndex=1190, literals=0)], 
text=IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.subsidy_amount ELSE 0 END), 0), owner=null), alias=Optional[subsidyAmount]), 
ExpressionProjectionSegment(startIndex=1228, stopIndex=1416, 
text=IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.coupo_amount ELSE 0 END), 0), expr=FunctionSegment(startIndex=1228, 
stopIndex=1390, functionName=IFNULL, 
parameters=[AggregationProjectionSegment(startIndex=1235, stopIndex=1386, 
type=SUM, innerExpression=(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.coupo_amount ELSE 0 END), 
parameters=[CommonExpressionSegment(startIndex=1239, stopIndex=1385, text=CASE 
WHEN mo.order_status = 1
                
                                                                           THEN 
mo.coupo_amount ELSE 0 END)], alias=Optional.empty), 
LiteralExpressionSegment(startIndex=1389, stopIndex=1389, literals=0)], 
text=IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.coupo_amount ELSE 0 END), 0), owner=null), alias=Optional[coupoAmount]), 
ExpressionProjectionSegment(startIndex=1427, stopIndex=1619, 
text=IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.deduction_amount ELSE 0 END), 0), expr=FunctionSegment(startIndex=1427, 
stopIndex=1593, functionName=IFNULL, 
parameters=[AggregationProjectionSegment(startIndex=1434, stopIndex=1589, 
type=SUM, innerExpression=(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.deduction_amount ELSE 0 END), 
parameters=[CommonExpressionSegment(startIndex=1438, stopIndex=1588, text=CASE 
WHEN mo.order_status = 1
                
                                                                           THEN 
mo.deduction_amount ELSE 0 END)], alias=Optional.empty), 
LiteralExpressionSegment(startIndex=1592, stopIndex=1592, literals=0)], 
text=IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.deduction_amount ELSE 0 END), 0), owner=null), 
alias=Optional[deductionAmount])], distinctRow=false), 
from=SimpleTableSegment(tableName=TableNameSegment(startIndex=1640, 
stopIndex=1649, identifier=IdentifierValue(value=meal_order, 
quoteCharacter=NONE)), owner=Optional.empty, alias=Optional[mo]), 
where=Optional[WhereSegment(startIndex=1662, stopIndex=2085, 
expr=BinaryOperationExpression(startIndex=1668, stopIndex=2085, 
left=BinaryOperationExpression(startIndex=1668, stopIndex=2031, 
left=BinaryOperationExpression(startIndex=1668, stopIndex=1967, 
left=BinaryOperationExpression(startIndex=1668, stopIndex=1729, 
left=BinaryOperationExpression(startIndex=1668, stopIndex=1682, 
left=ColumnSegment(startIndex=1668, stopIndex=1678, 
identifier=IdentifierValue(value=del_flag, quoteCharacter=NONE), 
owner=Optional[OwnerSegment(startIndex=1668, stopIndex=1669, 
identifier=IdentifierValue(value=mo, quoteCharacter=NONE), 
 owner=Optional.empty)]), right=LiteralExpressionSegment(startIndex=1682, 
stopIndex=1682, literals=0), operator==, text=mo.del_flag = 0), 
right=BinaryOperationExpression(startIndex=1710, stopIndex=1729, 
left=ColumnSegment(startIndex=1710, stopIndex=1725, 
identifier=IdentifierValue(value=enterprise_id, quoteCharacter=NONE), 
owner=Optional[OwnerSegment(startIndex=1710, stopIndex=1711, 
identifier=IdentifierValue(value=mo, quoteCharacter=NONE), 
owner=Optional.empty)]), 
right=ParameterMarkerExpressionSegment(startIndex=1729, stopIndex=1729, 
parameterMarkerIndex=0, parameterMarkerType=QUESTION, alias=Optional.empty), 
operator==, text=mo.enterprise_id = ?), operator=AND, text=mo.del_flag = 0
            
               AND mo.enterprise_id = ?), 
right=BinaryOperationExpression(startIndex=1798, stopIndex=1953, 
left=BinaryOperationExpression(startIndex=1798, stopIndex=1818, 
left=ColumnSegment(startIndex=1798, stopIndex=1814, 
identifier=IdentifierValue(value=department_ids, quoteCharacter=NONE), 
owner=Optional[OwnerSegment(startIndex=1798, stopIndex=1799, 
identifier=IdentifierValue(value=mo, quoteCharacter=NONE), 
owner=Optional.empty)]), 
right=ParameterMarkerExpressionSegment(startIndex=1818, stopIndex=1818, 
parameterMarkerIndex=1, parameterMarkerType=QUESTION, alias=Optional.empty), 
operator==, text=mo.department_ids = ?), right=InExpression(startIndex=1823, 
stopIndex=1953, left=ColumnSegment(startIndex=1823, stopIndex=1839, 
identifier=IdentifierValue(value=department_ids, quoteCharacter=NONE), 
owner=Optional[OwnerSegment(startIndex=1823, stopIndex=1824, 
identifier=IdentifierValue(value=mo, quoteCharacter=NONE), 
owner=Optional.empty)]), right=SubqueryExpressionSegment(subquery=Subquery
 Segment(startIndex=1844, stopIndex=1953, 
select=MySQLSelectStatement(super=SelectStatement(super=AbstractSQLStatement(parameterCount=3,
 parameterMarkerSegments=[ParameterMarkerExpressionSegment(startIndex=1729, 
stopIndex=1729, parameterMarkerIndex=0, parameterMarkerType=QUESTION, 
alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=1818, 
stopIndex=1818, parameterMarkerIndex=1, parameterMarkerType=QUESTION, 
alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=1940, 
stopIndex=1940, parameterMarkerIndex=2, parameterMarkerType=QUESTION, 
alias=Optional.empty)], commentSegments=[]), 
projections=ProjectionsSegment(startIndex=1852, stopIndex=1864, 
projections=[ColumnProjectionSegment(column=ColumnSegment(startIndex=1852, 
stopIndex=1864, identifier=IdentifierValue(value=department_id, 
quoteCharacter=NONE), owner=Optional.empty), alias=Optional.empty)], 
distinctRow=false), 
from=SimpleTableSegment(tableName=TableNameSegment(startIndex=1883, 
stopIndex=1908, identifie
 r=IdentifierValue(value=meal_enterprise_department, quoteCharacter=NONE)), 
owner=Optional.empty, alias=Optional.empty), 
where=Optional[WhereSegment(startIndex=1922, stopIndex=1952, 
expr=FunctionSegment(startIndex=1928, stopIndex=1952, functionName=find_in_set, 
parameters=[ParameterMarkerExpressionSegment(startIndex=1940, stopIndex=1940, 
parameterMarkerIndex=2, parameterMarkerType=QUESTION, alias=Optional.empty), 
ColumnSegment(startIndex=1943, stopIndex=1951, 
identifier=IdentifierValue(value=ancestors, quoteCharacter=NONE), 
owner=Optional.empty)], text=find_in_set(?, ancestors), owner=null))], 
groupBy=Optional.empty, having=Optional.empty, orderBy=Optional.empty, 
combines=[]), table=Optional.empty, limit=Optional.empty, lock=Optional.empty, 
window=Optional.empty), subqueryType=PREDICATE_SUBQUERY)), not=false), 
operator=OR, text=mo.department_ids = ? OR mo.department_ids IN (SELECT 
department_id
               FROM meal_enterprise_department
               WHERE find_in_set(?, ancestors))), operator=AND, 
text=mo.del_flag = 0
            
               AND mo.enterprise_id = ?
            
            
            
            
            
               AND (mo.department_ids = ? OR mo.department_ids IN (SELECT 
department_id
               FROM meal_enterprise_department
               WHERE find_in_set(?, ancestors))
               )), right=BinaryOperationExpression(startIndex=2015, 
stopIndex=2031, left=ColumnSegment(startIndex=2015, stopIndex=2026, 
identifier=IdentifierValue(value=meal_date, quoteCharacter=NONE), 
owner=Optional[OwnerSegment(startIndex=2015, stopIndex=2016, 
identifier=IdentifierValue(value=mo, quoteCharacter=NONE), 
owner=Optional.empty)]), 
right=ParameterMarkerExpressionSegment(startIndex=2031, stopIndex=2031, 
parameterMarkerIndex=3, parameterMarkerType=QUESTION, alias=Optional.empty), 
operator=>=, text=mo.meal_date >= ?), operator=AND, text=mo.del_flag = 0
            
               AND mo.enterprise_id = ?
            
            
            
            
            
               AND (mo.department_ids = ? OR mo.department_ids IN (SELECT 
department_id
               FROM meal_enterprise_department
               WHERE find_in_set(?, ancestors))
               )
            
            
            
               AND mo.meal_date >= ?), 
right=BinaryOperationExpression(startIndex=2069, stopIndex=2085, 
left=ColumnSegment(startIndex=2069, stopIndex=2080, 
identifier=IdentifierValue(value=meal_date, quoteCharacter=NONE), 
owner=Optional[OwnerSegment(startIndex=2069, stopIndex=2070, 
identifier=IdentifierValue(value=mo, quoteCharacter=NONE), 
owner=Optional.empty)]), 
right=ParameterMarkerExpressionSegment(startIndex=2085, stopIndex=2085, 
parameterMarkerIndex=4, parameterMarkerType=QUESTION, alias=Optional.empty), 
operator=<=, text=mo.meal_date <= ?), operator=AND, text=mo.del_flag = 0
            
               AND mo.enterprise_id = ?
            
            
            
            
            
               AND (mo.department_ids = ? OR mo.department_ids IN (SELECT 
department_id
               FROM meal_enterprise_department
               WHERE find_in_set(?, ancestors))
               )
            
            
            
               AND mo.meal_date >= ?
            
            
               AND mo.meal_date <= ?))], groupBy=Optional.empty, 
having=Optional.empty, orderBy=Optional.empty, combines=[]), 
table=Optional.empty, limit=Optional.empty, lock=Optional.empty, 
window=Optional.empty)
   14:27:18.307 [http-nio-9204-exec-6] INFO  ShardingSphere-SQL - [log,74] - 
Actual SQL: meal ::: SELECT
            
           COUNT(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
1 END)                                     AS orderCount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.order_amount ELSE 0 END), 0)            AS orderAmount,
           COUNT(CASE WHEN mo.refund_flag = 1 THEN 1 END)                       
            AS refundCount,
           IFNULL(SUM(CASE WHEN mo.refund_flag = 1 THEN mo.order_amount ELSE 0 
END), 0)     AS refundAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.pay_amount ELSE 0 END), 0)              AS payAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.discount_amount ELSE 0 END), 0)         AS discountAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.subsidy_amount ELSE 0 END), 0)          AS subsidyAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.coupo_amount ELSE 0 END), 0)            AS coupoAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.deduction_amount ELSE 0 END), 0)        AS deductionAmount
        
           FROM meal_order mo
           where mo.del_flag = 0
            
               AND mo.enterprise_id = ?
            
            
            
            
            
               AND (mo.department_ids = ? OR mo.department_ids IN (SELECT 
department_id
               FROM meal_enterprise_department
               WHERE find_in_set(?, ancestors))
               )
            
            
            
               AND mo.meal_date >= ?
            
            
               AND mo.meal_date <= ? ::: [2088720477654859, 1001085010986913, 
1001085010986913, 2025-12-01, 2026-01-04]
   14:27:18.307 [http-nio-9204-exec-6] INFO  ShardingSphere-SQL - [log,74] - 
Actual SQL: meal ::: SELECT
            
           COUNT(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
1 END)                                     AS orderCount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.order_amount ELSE 0 END), 0)            AS orderAmount,
           COUNT(CASE WHEN mo.refund_flag = 1 THEN 1 END)                       
            AS refundCount,
           IFNULL(SUM(CASE WHEN mo.refund_flag = 1 THEN mo.order_amount ELSE 0 
END), 0)     AS refundAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.pay_amount ELSE 0 END), 0)              AS payAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.discount_amount ELSE 0 END), 0)         AS discountAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.subsidy_amount ELSE 0 END), 0)          AS subsidyAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.coupo_amount ELSE 0 END), 0)            AS coupoAmount,
           IFNULL(SUM(CASE WHEN mo.order_status = 1
                
                                                                           THEN 
mo.deduction_amount ELSE 0 END), 0)        AS deductionAmount
        
           FROM meal_order_2025 mo
           where mo.del_flag = 0
            
               AND mo.enterprise_id = ?
            
            
            
            
            
               AND (mo.department_ids = ? OR mo.department_ids IN (SELECT 
department_id
               FROM meal_enterprise_department
               WHERE find_in_set(?, ancestors))
               )
            
            
            
               AND mo.meal_date >= ?
            
            
               AND mo.meal_date <= ? ::: [2088720477654859, 1001085010986913, 
1001085010986913, 2025-12-01, 2026-01-04]
   <==    Columns: orderCount, orderAmount, refundCount, refundAmount, 
payAmount, discountAmount, subsidyAmount, coupoAmount, deductionAmount
   <==        Row: 10467, 556500, 0, 0, 251300, 300, 0, 0, 304900
   <==      Total: 1
   Closing non transactional SqlSession 
[org.apache.ibatis.session.defaults.DefaultSqlSession@4e8615d8]
   
   `


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