和除数返回 0
sum divisor returning 0
我有这个 table,我将用随机数字填充它:
|--week--||-2016-||-2017-|
| 1 || 26734||6314916|
| 2 || 64565||9876768|
| 3 || 32243||9976757|
我想做的是创建第四列,它基本上是这些数字的变化。
我创建了下面的脚本,我知道它的工作原理与我为另一个 table 创建的脚本相同,除了其中的数字之外,这些 table 之间没有区别。
select CAST(ROUND(sum (([2017]) /(([2016]))-1)*100, 0) as NUMERIC(36,0)) as [variance%]
来自 table2
我得到以下
|--week--||-2016-||-2017-| variance%
| 1 || 26734||6314916|0
| 2 || 64565||9876768|0
| 3 || 32243||9976757|0
为什么我得到的是零,而另一个 table 我已经提供了实际的差异结果?
您需要做的就是将您的 INT 转换为浮点值。像这样:
select
CAST(ROUND(sum (([2017]*1.0) /(([2016]))-1)*100, 0) as NUMERIC(36,0)) as [variance%]
阅读 this stack exchange 答案以了解更多信息。
我有这个 table,我将用随机数字填充它:
|--week--||-2016-||-2017-|
| 1 || 26734||6314916|
| 2 || 64565||9876768|
| 3 || 32243||9976757|
我想做的是创建第四列,它基本上是这些数字的变化。 我创建了下面的脚本,我知道它的工作原理与我为另一个 table 创建的脚本相同,除了其中的数字之外,这些 table 之间没有区别。
select CAST(ROUND(sum (([2017]) /(([2016]))-1)*100, 0) as NUMERIC(36,0)) as [variance%]
来自 table2
我得到以下
|--week--||-2016-||-2017-| variance%
| 1 || 26734||6314916|0
| 2 || 64565||9876768|0
| 3 || 32243||9976757|0
为什么我得到的是零,而另一个 table 我已经提供了实际的差异结果?
您需要做的就是将您的 INT 转换为浮点值。像这样:
select
CAST(ROUND(sum (([2017]*1.0) /(([2016]))-1)*100, 0) as NUMERIC(36,0)) as [variance%]
阅读 this stack exchange 答案以了解更多信息。