小编典典

检索前一行以按日期从当前行中减去

sql

我有一个只有 2个 字段的表格:NAV_DateNetAssetValue

NAV_Date是一个季度的 最后 一天。

+----------+--------------+
|NAV_Date  |NetAssetValue |
+----------+--------------+
|12/31/2012|        $4,000|
+----------+--------------+
|03/31/2013|        $5,000|
+----------+--------------+

我正在尝试编写一个查询,该查询从以前的查询中减去最近的查询。当前,我的查询只是选择表中的所有值。我知道要执行此操作,每次都必须检索以前的记录,但是我不确定该怎么做。

最终,我将使用((CurrentValue/ PreviousValue)-1)并将值存储为百分比以返回差额。

我还将针对年度值执行此操作。如果有人做过类似的事情或为我起步提供了线索,是否有人举个例子?

我问的原因是因为我搜索了一个解决方案,但是找不到没有自动编号或ID字段的任何有用示例。


阅读 172

收藏
2021-05-16

共1个答案

小编典典

您可以使用相关子查询来执行此操作:

select NAV_date, NAV_value, (NAV_value / prev_value) - 1
from (select t.*,
             (select top 1 NAV_value
              from YOURTABLENAMEGOESHERE as t2
              where t2.NAV_date < t.NAV_date
              order by t2.NAV_date desc
             ) as prev_value
      from YOURTABLENAMEGOESHERE as t
     ) as t
2021-05-16