使用滞后函数(TSQL)返回0获得销售差异

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用滞后函数(TSQL)返回0获得销售差异相关的知识,希望对你有一定的参考价值。

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

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

enter image description here

答案

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获得销售差异的主要内容,如果未能解决你的问题,请参考以下文章

使用滞后函数访问当前行值

BottomNavigationView 滞后于片段事务

如何获得两个查询结果集之间的差异

TSQL计算最旧和最新行之间的差异

Android中切换标签片段之间的延迟

是否有窗口函数或窗口函数组合可用于通过 TSQL 获得所需的结果