Короткий ответ, да
Более длинный ответ, вы можете использовать переменную для подсчета его, как он перебирает вниз строки, т.е.
SELECT
`table`.`ID`,
`table`.`In`,
`table`.`Out`,
@Balance := @Balance + `table`.`In` - `table`.`Out` AS `Balance`
FROM `table`, (SELECT @Balance := 0) AS variableInit
ORDER BY `table`.`ID` ASC
, (SELECT @Balance := 0) AS variableInit
гарантирует, что @Balance инициализируется 0 до Вы начинаете. Для каждой строки она устанавливает @Balance как @Balance + In - Out
, а затем выводит вычисленное значение.
Также стоит указать, что ORDER согласован, так как в противном случае баланс будет варьироваться в зависимости от того, какой порядок возвращают строки. Если вы хотите, чтобы затем заказать его обратно на фронт, к примеру, вы могли бы использовать это в качестве подзапроса как тогда внешние сделки запроса с таким образом, вычисленные значения обеспечения баланса остается правильным IE
SELECT
`balanceCalculation`.`ID`,
`balanceCalculation`.`In`,
`balanceCalculation`.`Out`,
`balanceCalculation`.`Balance`
FROM (
SELECT
`table`.`ID`,
`table`.`In`,
`table`.`Out`,
@Balance := @Balance + `table`.`In` - `table`.`Out` AS `Balance`
FROM `table`, (SELECT @Balance := 0) AS variableInit
ORDER BY `table`.`ID` ASC
) AS `balanceCalculation`
ORDER BY `balanceCalculation`.`ID` DESC
как с нумерацией страниц, я думаю, что этот запрос не будет работать хорошо, баланс не будет хорошо –
@PutraLZendrato я боюсь, что я не понимаю, вопрос –
Привет Саймон, я имею в виду, как если данные строка большая, например, у нас есть 100 данных, но не будет загружаться на одной странице. Таким образом, мы разделяем на 2 страницы (работающая с разбивкой по страницам). Я думаю, что работающий баланс не будет работать. –