Я создаю приложение и считаю необходимым выполнить некоторые простые математические вычисления в своем запросе. По сути, у меня есть база данных с ежедневными значениями S&P 500, и мне нужно получить список дней в зависимости от введенных критериев.
Пользователь вводит как диапазон дней, так и диапазон в %. Например, если диапазон дат — с 1 января 2013 г. по 1 апреля 2013 г., а диапазон % — от -1% до 1%, он должен вернуть список всех дневных значений S%P 500 между датами, где разница между открытием и значения закрытия находятся в диапазоне %.
Проблема в том, что на самом деле у меня нет столбца для %; У меня есть только столбец для открытия/закрытия значений. Достаточно просто рассчитать %, учитывая только значения открытия и закрытия (close-open)/open*100. Но я не уверен, как это сделать в запросе.
Прямо сейчас запрос успешно выполняет поиск в диапазоне дат. Мой запрос:
@cases = Close.find(:all, conditions:["date between ? and ?",
@f_start, @f_end])
Но как я могу проверить, находится ли значение текущей строки (close-open)/open*100 между двумя значениями диапазона %?
В качестве альтернативы, если это невозможно или является плохой практикой, где я должен с этим справиться?