Как преобразовать число в дату в выражении Qlik Sense

На графике, который я пытаюсь показать в прошлом месяце с помощью этого выражения:

=If( [SH_historico_1.ANOMES] >= '$(=Max([SH_historico_1.ANOMES])-1)' and   [SH_historico_1.ANOMES] <= '$(=Max([SH_historico_1.ANOMES]))', [SH_historico_1.ANOMES])

Когда я пишу [SH_historico_1.ANOMES], я имею в виду период, например «ГГГГММ». А когда я вычитаю -1, я просто подставляю 1, например: 202002 -1 = 202001, так что работает, потому что он вычисляет правильный период.

Но ... Если это январь? ГГГГ01? пример 202001 -1 = 202000 00 номер месяца не существует. 00 должно быть 12.

Так что мне интересно, а что, если я буду рассматривать это число как дату? Я пытаюсь использовать функцию Date(), но немного застрял.

Как это могло быть с правильным синтаксисом?

Другое решение, которое я думаю, - это установить некоторый код в коде редактора, но все еще разрабатываю идею.

Любая помощь приветствуется.


person Sebastián    schedule 24.03.2020    source источник


Ответы (1)


Если вы хотите добавить / вычесть месяцы, лучше использовать Функция AddMonths (): AddMonths( DateField, NumberOfMonths). Эта функция будет заниматься январским выпуском

В вашем случае это будет: =AddMonths(Max([SH_historico_1.ANOMES]), -1) (как вы можете видеть, количество месяцев может быть отрицательным числом, которое вычитает месяцы из даты)

И небольшой совет: если вы планируете использовать этот расчет в выражении, подумайте об использовании Установить анализ вместо if..then..else оператора. Операторы if работают медленнее и потребляют больше ресурсов при использовании в выражениях.

person Stefan Stoichev    schedule 24.03.2020