Considere o script de cálculo a seguir, que pressupõe que SalesYTD
seja um filho de Ratios
em Sample.Basic
(onde Contas e Tempo são dimensões densas).
SET UPDATECALC OFF; "SalesYTD"( IF(@ismbr("Jan")) "SalesYTD" = "Sales"; Else "SalesYTD"="Sales" + @prior("SalesYTD"); Endif)
Neste exemplo, embora 11/12 avos dos dados atenda à condição ELSE, apenas 1/12 avos do dados atende à condição IF. Além disso, o membro SalesYTD é calculado no modo Célula, o que significa que o mês de janeiro, como aparece primeiro no outline, é calculado primeiro, independentemente da ordem da instrução IF. Você pode otimizar esse script usando NOT na instrução IF, como é mostrado no exemplo a seguir:
SET UPDATECALC OFF; "SalesYTD"( IF(NOT(@ismbr("Jan"))) "SalesYTD" = "Sales" + @prior("SalesYTD"); Else "SalesYTD"="Sales"; Endif)