我正在准备一份报告,该报告从MySQL数据库中提取数据。此报告涉及“运行总计”。运行总计运行良好,除了“上一个余额”未总计到运行总计。
实际上,我是PHP和MySQL的新手。我能够在MS Access报告中做到这一点。参见此处:Previous Balance added to First Row only in Access Report。
我在报告中使用以下代码:
SELECT
Pmt_Date,
Description,
Amount_In,
Amount_Out,
(@sum := @sum + Balance) AS BalanceTotal
FROM
view_transactions
JOIN(
SELECT @sum := 0
) AS tx
WHERE
Sch_Code = ? AND SESSION = ? AND Term = ? AND Bank = ? AND(
Pmt_Date BETWEEN '".$st_start_date."' AND '".$st_end_date."'
)
ORDER BY
Pmt_Date ASC
我使用以下代码获取“上一个余额”:
SELECT
SUM(Balance) AS PreBalance
FROM
view_transactions
WHERE
Sch_Code = ? AND SESSION = ? AND Term = ? AND Bank = ? AND(Pmt_Date < '".$st_start_date."')
我知道我的方法只能得到这样的东西: https://i.stack.imgur.com/rcRBb.png(目前正在获取),但所需的输出应类似于: https://i.stack.imgur.com/IuT5E.png
(请比较平衡栏)
我们将不胜感激。
答案 0 :(得分:0)
万一有人对我的解决方法感兴趣:
我更改了此部分:
SELECT @sum := 0
对此:
SELECT @sum := COALESCE(NULLIF(SUM(Balance), ''), 0)
FROM
view_transactions
WHERE
Sch_Code = ? AND Session = ? AND Term = ? AND Bank = ? AND (Pmt_Date < '".$st_start_date."')