2009-08-06 2 views
1

J'essaie d'atteindre ce qui suit: J'ai une mesure: [Mesures]. [Ventes] et une dimmension de temps: [Time]. [Année - Mois - Jour]. Je voudrais ajouter une nouvelle mesure: [mesures] [ventes SPLY] travailler de la manière suivante:.MDX, SSAS 2005 calculant SPLY (même période l'année dernière)

MOIS ----------------- Sales- ------------- Ventes SPLY

2009 Janvier -------- -------- 120 110 000,00

000,00

2009 Février ------ 100 000,00 -------- 90 000,00

2009 Mars ---------- 120 000,00 ------- -110 000,00

TOTAL: --------- ------ 340 000,00 -------- 290 000,00

La valeur de [Sales SPLY] est calculée de la façon suivante: J'ai créé une nouvelle mesure Sum, et dans un script de cube, je le remplace par le code suivant:

([Measures].[Sales SPLY], Leaves([Time])) = (PARALLELPERIOD([Time].[Year - Month - Day].[Year],1,[Time].[Year - Month - Day].currentmember), [MEASURES].[Sales]) 

Cela fonctionne, mais est très, très lent. Est-ce que quelqu'un sait une meilleure façon d'écrire ce MDX? l'utilisation de la période de parrarel uniquement dans un membre calculé entraînera une mauvaise valeur de la mesure Total dans SPLY. S'il vous plaît, j'ai beaucoup googlé et je n'ai rien trouvé de mieux que ça.

Répondre

1

J'ai tendance à créer simplement un membre comme

WITH 
MEMBER [Measures].[Sales SPLY] as ([Measures].[Sales], ParallelPeriod([Time].[Year - Month - Day].[Year],1,[Time].[Year - Month - Day].currentmember)) 
SELECT {[Measures].[Sales], [Measures].[Sales SPLY]} ON 0, .... 

Et cela fonctionne très bien.

Comment l'utilisez-vous globalement dans votre requête?

Rob

+0

Je dois ajouter ceci en tant que membre à un cube. La requête que vous avez fournie donnera de bons résultats. Toutefois, lorsque les utilisateurs parcourent le cube, développez la dimension temporelle et ne sélectionnez qu'une partie de l'année, le total du SPLY est erroné (c'est la somme de l'ensemble de l'année précédente). Le problème est mentionné ici: http://books.google.com/books?id=-4lFAurTLl0C&pg=PA76&lpg=PA76&dq=mdx+ssas+same+period+last+year&source=bl&ots=8G-mKLrMBy&sig=4o4H-NVk51DCsmKMhrBnrL48F84#v = onepage & q = & f = false Cependant, je pourrais trouver la solution ... – Adam

+0

Un membre de LastYearToDate, qui utilise une combinaison de ParallelPeriod et de YTD aide-t-il? –

+0

Désolé Adam - Je dois courir ... Je reviendrai plus tard. –