Question

Je ne sais pas si cela est possible ou non, ou si ma connaissance limitée de MDX me pousse dans la mauvaise direction ...

Le cube que je traite a deux dimensions différentes pour les dates, [Dates de relevé] et [Dates Premium] . Plus loin dans la hiérarchie de chacun ressemble à ceci:

[Statement Dates].[Statement Year].[2008]  
[Payment Dates].[Payment Year].[2008]

Pour la logique métier que j'implémente, je dois faire quelque chose comme:

select
  ({ [Measures].[Commission] }) on columns,
  ({[Products].[Product Category]}) on rows
from [Cube]
where
(
  IIF( [Products].[Product Category].CurrentMember.Name = "Some Category",
       [Statement Dates].[Statement Year].[2008], 
       [Payment Dates].[Payment Year].[2008] )
)

J'ai donc besoin de distinguer la dimension à utiliser pour filtrer l'année en fonction de la catégorie de produit utilisée.

Ceci est analysé correctement et la requête est exécutée, mais les chiffres semblent suggérer que l'instruction IIF renvoie toujours la valeur false.

Était-ce utile?

La solution

Étant donné que la clause WHERE est évaluée en premier, la fonction .CurrentMember de l'IIF affiche uniquement le message "All Product Cateogories". Dans ce cas, le [Produits]. [Catégorie de produit] .CurrentMember.Name ne sera jamais égal à " Une catégorie " la seule catégorie de produit dans le contexte est "Toutes les catégories de produits".

Une solution possible consiste à effectuer un calcul comme suit:

WITH MEMBER Measures.Commission2 as 
SUM(
{[Products].[Product Category].[Product Category].Members}
, IIF( [Products].[Product Category].CurrentMember.Name = "Some Category"
   , ([Statement Dates].[Statement Year].[2008],[Measures].[Commission])
   , ([Payment Dates].[Payment Year].[2008].[Measures].[Commission]) )
)
select  
   ({ [Measures].[Commission2] }) on columns
,  ({[Products].[Product Category]}) on rows
from [Cube]

Vous pouvez également effectuer une affectation délimitée dans le script de calcul de votre cube pour effectuer ce type de tâche.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top