web-dev-qa-db-fra.com

Comment puis-je obtenir les mesures du dernier mois avec MDX?

Je voudrais obtenir les valeurs des mesures du mois précédent.

c'est ce que j'ai :

SELECT
   [Measures].[Recuent distinct] ON ROWS,
   TAIL(NonEmptyCrossJoin([Dim Date].[Calendar].[Month Name].Members,1),1) ON     COLUMNS
  FROM [BDID]
  WHERE [Dim Canal].[Canal].&[Data]

Résultat:

October 2015
    Recuent Customers 10344

C'est ce que j'aimerais avoir :

September 2015
Recuent Customers 20754

La chose est que mon MDX prend les valeurs du mois en cours, mais je veux prendre les valeurs du dernier mois. Il doit être valable pour chaque mois, je veux dire que je voudrais avoir une requête automatique pour utiliser sur Power BI. Cela signifie que ce mois-ci doit me donner les valeurs du mois dernier (septembre) et le mois prochain les valeurs d'octobre afin d'éviter la modification de la requête chaque mois.

Faites-moi savoir si vous avez besoin de plus d'informations.

4
Miguel

Sans échantillons de données ni de structure, il serait difficile de fournir le code exact, mais voilà.

Vous devez regarder dans la PARALLELPERIOD fonction. Cette fonction prend un niveau d'une hiérarchie et navigue à un certain nombre d'étapes de ce niveau.

En outre, J'utilise l'hypothèse ici que vous souhaitez utiliser la fonction Tail () pour obtenir le mois dernier dans votre dimension avec une valeur réelle dans votre mesure .

J'ai fouillé un exemple dans la base de données AdventureWorks qui, à mon avis, vous obtient ce que vous voulez (qui n'est toujours pas tout à fait clair)

WITH MEMBER [Measures].[LastmonhtValue]
as
sum(PARALLELPERIOD([Date].[Calendar].[Month],1),[Measures].[Customer Count])

SELECT
    [Measures].[LastmonhtValue] ON 0,
 TAIL(NonEmptyCrossJoin([Date].[Calendar].[Month].Members,[Measures].[Customer Count],1),1) on 1 
  FROM [Adventure Works]

La façon dont cela fonctionne:
[.____] - La fonction Parallelperiod se déplace un mois
[.____] - la fonction de la queue utilise la mesure régulière pour vous procurer le dernier mois non vide
[.____] - Le résultat est 1 mois avec les données du mois précédent

C'est ainsi que les données ressemblent lorsque vous parcourez le cube en utilisant 'Mois' et 'Compte client'

enter image description here

C'est le résultat du code:

enter image description here

En empêchant toute information supplémentaire de votre côté, j'ai peur que ce soit le meilleur que je puisse faire.

Assurez-vous de concevoir votre attribute relationships Dans votre dimension de temps pour vous assurer que ce code a une performance acceptable