小编sa6*_*sa6的帖子

sql计算2行之间的差异

我正在寻找一种方法来比较同一个表中2行之间的差异.从我在这里找到的(如何获得列字段的两行之间的差异?)这几乎是我想要的.我做了以下代码:

create table #tmpTest
(
    id_fund int null,
    id_ShareType int null,
    ValueDate datetime null,
    VarNAV float null,
    FundPerf float null,
)

insert into #tmpTest(id_fund, id_ShareType, ValueDate, VarNAV)
values(1,1,'20140101',100)
insert into #tmpTest(id_fund, id_ShareType, ValueDate, VarNAV) 
values(1,1,'20140102',20)

update #tmpTest
set hrc.FundPerf = (isnull(hrn.VarNAV, 0) - hrc.VarNAV)/hrc.VarNAV
from #tmpTest hrc 
left join #tmpTest hrn on hrn.ValueDate = (select min(ValueDate) from #tmpTest where ValueDate > hrc.ValueDate)
and hrc.id_fund = hrn.id_fund and hrc.id_ShareType = hrn.id_ShareType 
Run Code Online (Sandbox Code Playgroud)

我的问题是,我正在计算的结果从第1行而不是第2行开始.

下面是我得到的结果:

id_fund id_ShareType ValueDate           VarNAV                       FundPerf                     
------- …
Run Code Online (Sandbox Code Playgroud)

sql sybase-ase

7
推荐指数
1
解决办法
726
查看次数

标签 统计

sql ×1

sybase-ase ×1