Как добавить предыдущий баланс к промежуточной сумме в отчете - PullRequest
0 голосов
/ 09 июня 2019

Я готовлю отчет, который извлекает данные из базы данных MySQL. Этот отчет включает промежуточные итоги. Промежуточный итог работает хорошо, за исключением того, что предыдущий баланс не суммируется с промежуточным итогом.

На самом деле, я новичок в PHP и MySQL. Я смог сделать это в отчете MS Access. См. Здесь: Предыдущий баланс добавлен в первую строку только в отчете о доступе .

Я использую следующий код для отчета:

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

(СРАВНИТЕ КОЛОННЫ БАЛАНСА, ПОЖАЛУЙСТА)

Любая помощь будет высоко оценена.

1 Ответ

0 голосов
/ 10 июня 2019

Если кому-то интересно, как я это решил:

Я изменил эту часть:

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."')
...