Php 显示mysql中最后10行的运行平衡列

Php 显示mysql中最后10行的运行平衡列,php,mysql,sql,Php,Mysql,Sql,下面的代码是我用来计算银行账户表的流动余额的代码。我得到了预期的跑步平衡 SELECT `balance1`.`ID`, `balance1`.`Date`, `balance1`.`Credit`, `balance1`.`Debit`, @Balance := @Balance + `balance1`.`Credit` - `balance1`.`Debit` AS `Balance`, `balance1`.`Remarks

下面的代码是我用来计算银行账户表的流动余额的代码。我得到了预期的跑步平衡

SELECT
    `balance1`.`ID`, 
    `balance1`.`Date`, 
    `balance1`.`Credit`, 
    `balance1`.`Debit`, 
    @Balance := @Balance + `balance1`.`Credit` - `balance1`.`Debit` AS `Balance`,
        `balance1`.`Remarks`
FROM `balance1`, (SELECT @Balance := 0) AS variableInit 
ORDER BY `balance1`.`ID` ASC
但是,如果要显示表的最后10项,该怎么办。首先以降序(限制为10)对表排序,然后再次以升序排序将不起作用,因为余额列(计算列)将受到影响

有没有办法在不影响余额列计算的情况下显示最后10行?

而不是:

ORDER BY `balance1`.`ID` ASC
使用


将现有查询用作子查询,以降序排列前10名
balance1.ID
。然后在外部查询中,按升序排序
balance1.ID

SELECT * FROM
(
  SELECT b.ID, b.Date, b.Credit, b.Debit, b.Remarks,
         @Balance := @Balance + b.Credit - b.Debit AS Balance
  FROM balance1 b, (SELECT @Balance := 0) AS variableInit 
  ORDER BY b.ID DESC
  LIMIT 10
) m
ORDER BY m.ID ASC
SELECT * FROM
(
  SELECT b.ID, b.Date, b.Credit, b.Debit, b.Remarks,
         @Balance := @Balance + b.Credit - b.Debit AS Balance
  FROM balance1 b, (SELECT @Balance := 0) AS variableInit 
  ORDER BY b.ID DESC
  LIMIT 10
) m
ORDER BY m.ID ASC