SQL Server: запрос для отображения нового столбца, содержащего коэффициент * данных на основе предыдущей записи - PullRequest
0 голосов
/ 26 апреля 2018

Я пытаюсь сформулировать запрос в SQL Server, где:

Date        |   Name  | Amount | AmountX
------------+---------+--------+-------
2010-01-01  |   Test  | 0      | 0
2010-02-01  |   Test  | 0      | 0
2010-03-01  |   Test  | 0      | 0
2011-01-01  |   Test  | 62.61  | 63.86
2011-02-01  |   Test  | 62.61  | 63.86
2011-03-01  |   Test  | 62.61  | 63.86
2012-01-01  |   Test  | 62.61  | 65.14
2012-02-01  |   Test  | 62.61  | 65.14
2012-03-01  |   Test  | 62.61  | 65.14
2013-01-01  |   Test  | 62.61  | 66.44
2013-02-01  |   Test  | 62.61  | 66.44
2013-03-01  |   Test  | 62.61  | 66.44
2014-01-01  |   Test  | 62.61  | 67.77
2014-02-01  |   Test  | 62.61  | 67.77
2014-03-01  |   Test  | 62.61  | 67.77
2015-01-01  |   Test  | 0      | 0
2015-02-01  |   Test  | 0      | 0
2015-03-01  |   Test  | 0      | 0
2016-01-01  |   Test  | 67.95  | 69.31
2016-02-01  |   Test  | 67.95  | 69.31
2016-03-01  |   Test  | 67.95  | 69.31
2017-01-01  |   Test  | 67.95  | 70.70
2017-02-01  |   Test  | 67.95  | 70.70
2017-03-01  |   Test  | 67.95  | 70.70
2018-01-01  |   Test  | 67.95  | 72.11
2018-02-01  |   Test  | 67.95  | 72.11
2018-03-01  |   Test  | 67.95  | 72.11
2019-01-01  |   Test  | 67.95  | 73.55
2019-02-01  |   Test  | 67.95  | 73.55
2019-03-01  |   Test  | 67.95  | 73.55

Столбцы Дата, Имя и Сумма взяты из таблицы.

Мне нужно создать запрос для включения в столбец AmountX на основе группировки дат. Сумма и коэффициент 2% для расчета.

Год 2010 можно игнорировать, поскольку значения Amount равны 0 с.

Для 2011 года значения Суммы равны нулю, что составляет 62,61. Мне нужно умножить это на 1,02, получив 63,86 на весь год, и отобразить его в столбце AmountX.

Теперь за 2012 год будет рассчитано 63,86 за предыдущий год X 1,02 = 65,14.

Таким образом, в 2013 году это будет 64,14 X 1,02 = 66,44.

А для 2014 года это будет 66,44 X 1,02 = 67,77.

Это выполнимо?

Любая помощь очень ценится.

RS ..

1 Ответ

0 голосов
/ 26 апреля 2018

Я думаю, что вы хотите:

select t.*, 
       (amount * power(1.02, year(date) - 2010)) as amountX
from t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...