sql-server - SQL Server:查询以显示包含基于先前记录的数据*因子的新列
问题描述
我正在尝试在 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 年,因为金额值为 0。
对于 2011 年,金额值不是 0,即 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。
这是可行的吗?
任何帮助是极大的赞赏。
回复..
解决方案
我想你想要:
select t.*,
(amount * power(1.02, year(date) - 2010)) as amountX
from t;
推荐阅读
- c# - 在不使用实体框架的情况下跟踪对类所做的更改
- php - 检查是否在 Drupal 8 Twig 模板中选中了多值复选框
- d3.js - D3 v3 线生成器插值基数绘制直线
- windows - echo 在 for 循环中不回显
- angular6 - 如何使用 Angular 6 中的 Reactive 形式将 FormData 与另一个 FormControl 一起发送?
- c++ - C++ - 移动具有固定大小、c 样式数组成员的类的构造函数
- iframe - 在 wix 中使用 Chart.js 制作图表时出现问题?
- c# - 从excel文件读取时for循环仅返回第一个值
- sql - SQL查询比较金额
- haskell - Num 实例的总和元组