2017-03-06 1 views
1

J'essaie de faire la somme des valeurs dans une colonne VAL pour les 14 derniers jours à partir de T_DATE, par compte.Spotfire - sum() sur lookback

Mon expression est

if([RND_FLG]=1 ,Sum([VAL]) over (Intersect([T_ACC],LastPeriods(14,[T_DATE]))),null) 

9/10 les résultats sont exacts, mais ce n'est pas toujours le cas.

Toute aide est appréciée.

données exemples ci-dessous:

ALLDATE  T_ACC  VAL  14DAYVAL 
12/13/2016 1501313137 500000 500000 
12/15/2016 1501313137 800000 1300000 
12/19/2016 1501313137 500000 1800000 
12/20/2016 1501313137 500000 2300000 
12/21/2016 1501313137 500000 2300000 
12/22/2016 1501313137 500000 3300000 
12/30/2016 1501313137 200000 3500000 

Répondre

1

Vous êtes sans doute d'obtenir des résultats incorrects lorsque vous avez des lacunes dans vos dates. LastPeriods() n'est pas la même chose que n-jours, c'est donc agréger sur n nombre de lignes par rapport aux jours. Vous pouvez normaliser vos données pour avoir 1 ligne par date pour contourner cela.

+0

J'ai essayé d'utiliser la fonction DateAdd, (DateAdd ("jour", - 14, [T_DATE])), pour établir la date de fin de chaque jour, mais toujours incorrecte. Est-ce que ce qui suit a du sens? if (([RND_FLG] = 1), Sum ([VAL]) sur (Intersection ([T_ACC], DateAdd ('jour', -14, [T_DATE])), NULL)) Pouvez-vous penser à des alternatives pour ce? –

+0

Pour plus de précisions, je ne veux pas additionner la valeur de chaque rangée qui s'est produite au cours des 14 derniers jours, seulement les valeurs considérées comme «rondes» (ont 5+ zéros), c'est pourquoi il y a l'instruction if de le rnd_flag dans l'équation ci-dessus. Merci! –

+0

@LaurenFetky Je pense que vous allez devoir normaliser vos données ou gérer ceci en Python ou TERR – scsimon