我有如下数据库AAA如下:
date min max
2011-1-1 1 2
2011-1-2 3 4
2011-1-3 5 6
2011-1-4 7 8
2011-1-5 12 13
2011-1-6 5 10
2011-1-7 2 3
2011-1-8 8 9
我想要计算,从最后的一天,也就是1-18开始,和上一天的比较,也就比较1-8和1-7,MAX最大的,除以MIN里最小的,为T值,例如往回第一次,2最小,9最大,那么T值为9/2=4.5 ,然后比较T值是否小于某个数,如6,如果小于六,继续和再上一天比较,也就是1-8,1-7,1-6,T值应该为10/2=5,小于6,继续和上一天算到1-5,T值为13/2=6.5,T值不小于6了,然后这时一共算了多少天的。也就是4天,返回4。
这个应该怎么写?
declare @days float
declare @value float
declare @result float
set @result=0
set @days=0
set @value=6
order by [date]desc
while(@result<@value)
begin
set @days=@days+1
--按时间降序排列添加行号一次获取前@days天的行数据计算得到 @result
select row_number() over(order by [date] ) as rownumber,
@result=(max([max])/min([min])) from test_table
Where row_number()<=@days
End
环比吗》