Tenga en cuenta el siguiente script, que asume que SalesYTD
es un hijo de Ratios
en Sample.Basic
(donde Accounts y Time son dimensiones densas).
SET UPDATECALC OFF; "SalesYTD"( IF(@ismbr("Jan")) "SalesYTD" = "Sales"; Else "SalesYTD"="Sales" + @prior("SalesYTD"); Endif)
En este ejemplo, si bien la 11/12ª de los datos cumplen la condición ELSE, solo la 1/12ª parte de los datos cumplen la condición IF. Además, el miembro SalesYTD se calcula en modo de celda, lo que significa que January, como aparece el primero en el esquema, se calcula en primer lugar con independencia del orden de IF. Puede optimizar este script usando NOT en la sentencia IF como se muestra en el siguiente ejemplo:
SET UPDATECALC OFF; "SalesYTD"( IF(NOT(@ismbr("Jan"))) "SalesYTD" = "Sales" + @prior("SalesYTD"); Else "SalesYTD"="Sales"; Endif)