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

时间:2012-08-17 16:02:01

标签: 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存储在数据库中并在表单上打印。所以我可以计算每月费用和用法以及其他东西。谢谢你的回答。

2 个答案:

答案 0 :(得分:0)

这样的东西

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

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

答案 1 :(得分:0)

假设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语句有效。