Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
计算SQL Server中的运行增加数_Sql_Sql Server - Fatal编程技术网

计算SQL Server中的运行增加数

计算SQL Server中的运行增加数,sql,sql-server,Sql,Sql Server,我有一个有趣的问题要解决,那就是将一个数字增加多个百分比 假设我有一个小部件,我想在表中增加这个小部件的成本百分比 WidgetPercent WidgetID | Percent ---------+-------- 1 .10 1 .06 小部件 WidgetID | Cost ---------+------- 1 100 我想将小部件的成本增加第一个百分点,然后再增加下一个百分点,并输出一个值 范例 100 * 1.10 = 1

我有一个有趣的问题要解决,那就是将一个数字增加多个百分比

假设我有一个小部件,我想在表中增加这个小部件的成本百分比

WidgetPercent

WidgetID | Percent
---------+--------
1          .10
1          .06
小部件

WidgetID | Cost
---------+-------
1           100
我想将小部件的成本增加第一个百分点,然后再增加下一个百分点,并输出一个值

范例

100 * 1.10 = 110
110 * 1.06 = 116.60
输出应为116.60。结果将由WidgetID提供

我想我应该在SUM中使用OVER(),但在本文中不太确定


请注意,环境是SQL Server 2012 forward。

您可以使用如下算法:

select w.widgetid, w.cost * wp.factor
from (select widgetid, exp(sum(log(1 + percent))) as factor
      from widgetpercent wp
      group by widgetid
     ) wp join
     widget w
     on wp.widgetid = w.widgetid;

是一把小提琴。

。第二行应该是0.06,而不是0.6。您不应该有一列来指定应用百分比的顺序吗?编辑,谢谢,戈登。只要应用了所有百分比,顺序就不重要了。