sql - 如何在 SQL Server SELECT 语句中获取先前的值
问题描述
我有一张这样的桌子
我想添加一个名为“昨天金额”的列,其中的值是上一日期的金额和相同的 Account_No。例如,在 ACCOUNT_NO = 1 中,日期为 2014 年 3 月 24 日,昨天金额列的值为 100。有没有解决这个问题的方法?
解决方案
未经测试
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)。