使用滞后函数(TSQL)返回0获得销售差异
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用滞后函数(TSQL)返回0获得销售差异相关的知识,希望对你有一定的参考价值。
我正在尝试通过使用CTE的LAG
函数来获得销售百分比的变化。
我已经尝试手动进行操作((实际-上一个)/上一个)* 100,并使用格式功能(如我的图片所示),但仍然获得0.00%作为变化百分比,但显然不是那样。任何人都知道为什么吗?
答案
SQL倾向于将结果四舍五入,如果它不是浮点格式。例如:
select FORMAT((291-273)/273,'P')
上面的语句返回0%。一旦将分子和分母转换为浮点数:
select FORMAT(CAST((291-273) as float)/CAST(273 as float),'P')
上面的语句返回6.59%。也许您可以尝试一下。
另一答案
仍然没有数据,所以无法测试,但是我会尝试这样的事情:
select mois, cmd, lag, Format(1.0*(cmd-lag)/lag,'P') as 'lag_%'
from cte_a
order by mois
以上是关于使用滞后函数(TSQL)返回0获得销售差异的主要内容,如果未能解决你的问题,请参考以下文章