Domanda

Non so se sia possibile o meno, o se la mia conoscenza limitata di MDX mi sta spingendo nella direzione sbagliata ...

Il cubo con cui ho a che fare ha due dimensioni diverse per le date, [Date Dichiarazione] e [Date Premium] . Più avanti nella gerarchia di ciascuno assomiglia a questo:

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

Per la logica aziendale che sto implementando, devo fare qualcosa del tipo:

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] )
)

Quindi ne ho bisogno per discriminare quale dimensione utilizzare per filtrare l'anno in base alla categoria di prodotto utilizzata.

Questo analizza ok e la query viene eseguita, ma i numeri sembrano suggerire che l'istruzione IIF restituisce sempre false.

È stato utile?

Soluzione

Poiché la clausola WHERE viene valutata per prima, la funzione .CurrentMember nell'IIF vedrà solo "Tutte le categorie di prodotti". Nel qual caso il [Prodotti]. [Categoria prodotto] .CurrentMember.Name non sarà mai uguale a " Some Category " poiché l'unica categoria di prodotti nel contesto è " Tutte le categorie di prodotti " ;.

Una possibile soluzione sarebbe quella di fare un calcolo come il seguente:

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]

Potresti anche fare un'assegnazione con ambito nello script di calcolo nel tuo cubo per fare questo genere di cose.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top