2013-04-08 62 views
0

我正在構建一個應用程序,我發現有必要在我的查詢中執行一些簡單的數學計算。基本上,我有一個數據庫,其中包含來自S & P 500的每日值,我需要根據輸入的標準獲得一個天數列表。如何在活動記錄中執行數學計算在Rails中查詢

用戶輸入日期範圍和%範圍。例如,如果日期範圍是2013年1月1日 - 2013年4月1日,百分比範圍是-1% - 1%,則應返回日期範圍內所有S%P 500每日值的列表並且收盤值在%範圍內。

問題是我實際上沒有列的%;我只有一個打開/關閉值的列。計算僅給定開盤價和收盤價(開盤價)/開盤價* 100的%很簡單。但我不知道如何在查詢中做到這一點。

現在查詢在日期範圍內成功搜索。我的查詢是:

@cases = Close.find(:all, conditions:["date between ? and ?", 
    @f_start, @f_end]) 

但我怎麼能得到它來檢查當前行的(關 - 開)/開放* 100值是兩個%的區間值之間?

另外,如果這是不可能的或不好的做法,我應該在哪裏處理?

回答

0

您可以在Ruby/Rails中自己計算打開/關閉範圍,並按照與日期範圍相同的方式傳遞它。例如:

percent = @f_percent/100.0 # 5% => 0.05 
low = @f_close * (1.0 - percent) 
high = @f_close * (1.0 + percent) 
Close.where 'date between ? and ? AND close between ? and ?', \ 
    @f_start, @f_end, low, high