日期:2014-05-16  浏览次数:21047 次

SQL SERVER 2008 R2 库表中要求一列数据等于另一列数据按时间错位相减
例如下表

插入一行后自动变成下表

此表数据量会很大 千万条记录计
------解决方案--------------------
你这个和总共多少条数据没关系吧,你只需要处理增加的那一行和它下面那一行就ok了
------解决方案--------------------

Select [time],value1,value2 From(
Select [time],value1,sum(value1) OVER(PARTITION by rnum) as value2  From (
Select [time],value1,((row_number() OVER(Order by [time] DESC,value1))+1)/2 as rnum From (
select [time],value1 From m5_test
Union all
select [time],-value1 From(
select [time],value1,row_number() OVER(Order by [time] DESC) as rnum From m5_test
) as tb1 Where rnum>1
) tb2
) tb3
) tb4 Where value1>=0 Order by [time]