如何在当前行中选择上一行的值和过去?

  • 本文关键字:一行 过去 选择 mysql
  • 更新时间 :
  • 英文 :


我使用 mysql,这是我当前表中的条目。

因此,此处当月的上一个余额应该是上个月的剩余余额。如何从数据库的前一行获取此值。

Previous_balance Remaining_Balance
        0.00        42.64
        0.00        627.69
        0.00        45.54
        0.00        67.60

结果应该是

Previous_balance Remaining_Balance
        0.00        42.64
        42.64       627.69
        627.69      45.54
        45.54       67.60

我有 ID 作为 PK,我想将新previous_balance存储在数据库中并在表单上打印。所以我可以计算每月费用和使用情况以及其他东西。感谢您的回答。

假设id字段是有序的,请尝试以下操作:

UPDATE Balances 
  SET b1.Previous_balance = COALESCE((SELECT b2.Remaining_Balance 
                                      FROM Balances b2 
                                      WHERE b2.id < b1.id 
                                      ORDER BY b2.id DESC 
                                      LIMIT 1),0) 
FROM Balances b1

我没有安装 mySQL,所以我不能保证所有的语法。 我知道 SELECT 语句有效。

类似的东西

SELECT LAST(remaingBalance) as previousBalance, FIRST(remaingBalance) as remaingBalance FROM ...
WHERE ...
GROUP BY month

请参阅 http://www.w3schools.com/sql/sql_functions.asp

最新更新