获得带有滞后函数的销售变化返回0

问题描述 投票:0回答:2

我正在尝试通过使用CTE的LAG函数来获得销售百分比的变化。

我已经尝试手动进行操作((实际-上一个)/上一个)* 100,并使用格式功能(如我的图片所示),但仍然获得0.00%作为变化百分比,但显然不是那样。任何人都知道为什么吗?

enter image description here

sql-server tsql lag
2个回答
0
投票

SQL倾向于将结果四舍五入,如果它不是浮点格式。例如:

select FORMAT((291-273)/273,'P')

上面的语句返回0%。一旦将分子和分母转换为浮点数:

select FORMAT(CAST((291-273) as float)/CAST(273 as float),'P')

上面的语句返回6.59%。也许您可以尝试一下。


0
投票

仍然没有数据,所以无法测试,但是我会尝试这样的事情:

select mois, cmd, lag, Format(1.0*(cmd-lag)/lag,'P') as 'lag_%'
from cte_a
order by mois
© www.soinside.com 2019 - 2024. All rights reserved.