SQL Server 2005: найти / получить доступ к значению (currentrow-N) и реализовать формулу? - PullRequest
0 голосов
/ 16 июня 2009

У меня есть таблица с четырьмя столбцами (год, месяц, имя и значение)

Я хочу добавить еще один столбец (new_value), который рассчитывается по следующей формуле

NEW_VALUE = (ЗНАЧЕНИЕ currentMonth / VALUE (currentMonth-4)) ^ 1/3

Пример

Year    Month   NAME    VALUE   NEW_VALUE   
2008      01     A      4.412       ?
2008      02     B      4.941
2008      03     C      4.815
2008      04     D      4.246
2008      05     E      4.100
2008      06     F      4.490
2008      07     G      4.465
2008      08     H      4.636
2008      09     I      4.045
2008      10     J      5.543
2008      11     K      5.722
2008      12     L      5.326

например: за месяц 08

НОВОЕ ЗНАЧЕНИЕ = (4.636 / 4.246) ^ 1/3

Игнорировать расчет за первые четыре месяца

Как программно получить значение currentMonth-4 в SQL?

Спасибо

Ответы [ 2 ]

1 голос
/ 16 июня 2009

Аналогично @Tetraneutron:

SELECT tb.Name, tb.Value, POWER(tb.value / ta.value, .3333) AS NewValue
FROM
    yourtable ta,
    yourtable tb
WHERE
    (tb.month>4 AND ta.month=tb.month-4 AND tb.year=ta.year)
    OR (tb.month<=4 AND ta.month=(8+tb.month) AND tb.year=(ta.year+1))
1 голос
/ 16 июня 2009

Просто присоедините таблицу к себе на месяц (и, возможно, к другим столбцам, я не знаю ваших данных)

select TB.Name, TB.Month, (TB.Value / TA.Value) ^ 1/3 -- This calculation won't work, but your parameters are there
from YourTable TA
join YourTable TB
on TA.Month = TB.Month - 4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...