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