首页 > 解决方案 > 如何在 SQL Server SELECT 语句中获取先前的值

问题描述

我有一张这样的桌子

我想添加一个名为“昨天金额”的列,其中的值是上一日期的金额和相同的 Account_No。例如,在 ACCOUNT_NO = 1 中,日期为 2014 年 3 月 24 日,昨天金额列的值为 100。有没有解决这个问题的方法?

标签: sqlsql-server

解决方案


未经测试

select Table.ACCOUNT_NO, Table.Date, Table.Amount,
    Table2.Amount Yesterday_Amount
from Table
left outer join Table as Table2
   on Table.ACCOUNT_NO = Table2.ACCOUNT_NO
   and Table.Date = dateadd("dd",1,Table2.Date)

在 ACCOUNT_NO 相等且 Date 小于 1 的条件下将 Table 加入自身。当没有先前的值时,使用左外连接将使 Yesterday_Amount 为空。如果您希望金额为零,请将其替换为 isnull(Yesterday_Amount,0)。


推荐阅读