为了账号安全,请及时绑定邮箱和手机立即绑定

这个存储过程应该怎么写

这个存储过程应该怎么写

哆啦的时光机 2018-12-07 03:53:15
我有如下数据库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 回答

?
泛舟湖上清波郎朗

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
 注意:没有测试,没有考虑min未0的情况! 不知是否能帮你解决问题
查看完整回答
反对 回复 2019-01-07
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

环比吗》

查看完整回答
反对 回复 2019-01-07
  • 2 回答
  • 0 关注
  • 413 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信