猿问

这个存储过程应该怎么写

我有如下数据库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。

这个应该怎么写?

哆啦的时光机
浏览 419回答 2
2回答

泛舟湖上清波郎朗

declare @days floatdeclare @value float declare @result floatset @result=0 set @days=0set @value=6 order by [date]descwhile(@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  注意:没有测试,没有考虑min未0的情况! 不知是否能帮你解决问题

肥皂起泡泡

环比吗》
随时随地看视频慕课网APP

相关分类

SQL Server
我要回答