SELECT
account_id,
MAX(CASE WHEN balance_date = ${start_date} THEN opening_balance END) AS period_opening,
MAX(CASE WHEN balance_date = ${end_date THEN} closing_balance END) AS period_closing,
SUM(transaction_amount) AS total_transaction
FROM account_balance
WHERE balance_date BETWEEN ${start_date} AND ${end_date}
GROUP BY account_id
1.期初与期末取值 MAX(CASE ...):通过条件筛选直接获取指定日期的期初余额(opening_balance)和期末余额(closing_balance)。若表中存在多个账户,按account_id分组确保结果按账户区分
2.交易金额求和 SUM(transaction_amount):对时间范围内的所有交易金额求和
3.日期范围过滤 WHERE balance_date BETWEEN ...:筛选出时间范围内的记录,需确保输入的开始和结束日期在表中存在对应数据