首页 新闻 搜索 专区 学院

这个存储过程应该怎么写

0
[已解决问题] 解决于 2011-04-01 08:52

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

这个应该怎么写?

xzf_fancy的主页 xzf_fancy | 初学一级 | 园豆:28
提问于:2011-03-26 16:09
< >
分享
最佳答案
0

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的情况! 不知是否能帮你解决问题

老虞 | 初学一级 |园豆:99 | 2011-03-26 16:32
其他回答(1)
0

环比吗》

小毛驴 | 园豆:275 (菜鸟二级) | 2011-03-27 08:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册