Forum Discussion

SebSchoon1's avatar
SebSchoon1
Icon for Post Patron rankPost Patron
3 years ago

Reducce memory consumption with running total

Hi guys ,

 

i have some difficulties with a running total measure.

 

It works well, however it consumes huge quantity of memory.

 

I have a simple Starmodel  with fact table.

 

For each line of the movement table there are some quantities, Some of these movement type move stock value, like sellings etc.

 

here is my formula to compute all of these (summary table)

 

Mouvements de stock = SUMx(ADDCOLUMNS(SUMMARIZE(FILTER('BDD - Lignes de mouvements',
'BDD - Lignes de mouvements'[LIBELLE NATURE DE MOUVEMENT]="Avoir fournisseur sur stock" ||
'BDD - Lignes de mouvements'[LIBELLE NATURE DE MOUVEMENT]="Ecarts d'inventaire" ||
'BDD - Lignes de mouvements'[LIBELLE NATURE DE MOUVEMENT]="Entrées exceptionnelles" ||
'BDD - Lignes de mouvements'[LIBELLE NATURE DE MOUVEMENT]="Facture fournisseur" ||
'BDD - Lignes de mouvements'[LIBELLE NATURE DE MOUVEMENT]="Réception fournisseur" ||
'BDD - Lignes de mouvements'[LIBELLE NATURE DE MOUVEMENT]="Retour fournisseur" ||
'BDD - Lignes de mouvements'[LIBELLE NATURE DE MOUVEMENT]="Sorties exceptionnelles" ||
'BDD - Lignes de mouvements'[LIBELLE NATURE DE MOUVEMENT]="Ticket" ||
'BDD - Lignes de mouvements'[LIBELLE NATURE DE MOUVEMENT]="Transfert émis" ||
'BDD - Lignes de mouvements'[LIBELLE NATURE DE MOUVEMENT]="Transfert reçu"),
'BDD - Lignes de mouvements'[DATE DE MODIFICATION],
'BDD - Lignes de mouvements'[CLEF UNIQUE ARTICLE],
'BDD - Lignes de mouvements'[DEPOT],
'BDD - Lignes de mouvements'[LIBELLE NATURE DE MOUVEMENT]),

"Quantités en stock",

CALCULATE(SUM('BDD - Lignes de mouvements'[QUANTITE]))),[Quantités en stock])

 

then I use the DATEs if this fact table,

 

and I do this formula 

 

1-RT STOCK pas mal 2 = 

VAR _selecteddate = SELECTEDVALUE('BDD - Lignes de mouvements'[DATE DE MODIFICATION])

VAR _datemax = CALCULATE(MAX('BDD - Lignes de mouvements'[DATE DE MODIFICATION]), ALL ('BDD - Lignes de mouvements'))

RETURN

    IF(_selecteddate> _datemax,BLANK(),CALCULATE('1-Mesures sur mouvements de stock'[Mouvements de stock],ALL('BDD - Lignes de mouvements'[DATE DE MODIFICATION]),'BDD - Lignes de mouvements'[DATE DE MODIFICATION] <= _selecteddate))

However it consume huge huge amount of power to calculate the things.

 

Here an example.

 

So it is the desired output, but is there any way to improve the formula?

 

Thanks guys 😛

 

 

 

3 Replies