我有如下数据库AAA如下:date min max2011-1-1 1 22011-1-2 3 4 2011-1-3 5 62011-1-4 7 82011-1-5 12 132011-1-6 5 102011-1-7 2 32011-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。这个应该怎么写?
2 回答
泛舟湖上清波郎朗
注意:没有测试,没有考虑min未0的情况! 不知是否能帮你解决问题
TA贡献1818条经验 获得超3个赞
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
- 2 回答
- 0 关注
- 413 浏览
添加回答
举报
0/150
提交
取消