Получение изменения продаж с возвратом функции отставания 0 - PullRequest
0 голосов
/ 10 февраля 2020

Я пытаюсь получить изменение в% от продаж с помощью функции LAG из моего CTE.

Я пытался сделать это вручную ((фактический предыдущий) / предыдущий) * 100 и с функцией форматирования (как на моей картинке), но все равно получают 0,00% в качестве% вариации, хотя это явно не так. Кто-нибудь в качестве подсказки, почему?

enter image description here

Ответы [ 2 ]

0 голосов
/ 10 февраля 2020

SQL имеет тенденцию округлять результаты, если они не в формате с плавающей точкой. Например:

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

Приведенный выше оператор возвращает 0%. Как только вы приведете числитель и знаменатель как число с плавающей запятой:

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

Вышеприведенный оператор возвращает 6,59%. Возможно, вы могли бы попробовать это.

0 голосов
/ 10 февраля 2020

У меня еще нет данных, поэтому я не могу их проверить, но я бы попробовал что-то вроде этого:

select mois, cmd, lag, Format(1.0*(cmd-lag)/lag,'P') as 'lag_%'
from cte_a
order by mois
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...