Come posso determinare se le dimensioni sono correlate?
Domanda
Sto sviluppando un'applicazione di query builder che genera MDX e sto cercando di ottenere conteggi dei clienti da un cubo utilizzando quanto segue, che funziona bene:
WITH MEMBER MEASURES.X AS (
{ [Customer].[Gender].[Female]},
[Customer].[Customer].Children
).Count
SELECT Measures.X ON 0 FROM [Adventure Works]
Tuttavia, se l'utente trascina in una dimensione che non è correlata al cliente come:
WITH MEMBER MEASURES.X AS (
{ [Customer].[Gender].[Female]},
{ [Employee].[Status].[Active], [Employee].[Status].[Inactive]},
[Customer].[Customer].Children
).Count
SELECT Measures.X ON 0 FROM [Adventure Works]
Il risultato del conteggio diventa ovviamente errato.
Esiste un modo per determinare se una dimensione è correlata al cliente in modo da poterla escludere dalla query MDX generata?
Soluzione 2
Risolto il problema usando il Esiste (set_expression1, set_expression2 [, misuragroupname]) funzione. Non è necessario determinare manualmente quali dimensioni sono correlate. Il Esiste La funzione filtra le tuple non correlate, lasciando solo il{ [Customer].[Customer].Children, [Customer].[Gender].[Female]}
impostato per fare il conteggio.
Ecco MDX:
WITH MEMBER MEASURES.X AS Exists(
[Customer].[Customer].Children,
{[Customer].[Gender].[Female]}
*
{[Employee].[Status].[Active], [Employee].[Status].[Inactive]}
).Count
SELECT Measures.X ON 0 FROM [Adventure Works]