Pregunta

Estoy desarrollando una aplicación de constructor de consultas que genera MDX e intente obtener los recuentos de clientes de un cubo usando lo siguiente, lo que funciona bien:

WITH MEMBER MEASURES.X AS (
    { [Customer].[Gender].[Female]}, 
    [Customer].[Customer].Children
).Count
SELECT Measures.X ON 0 FROM [Adventure Works]

Sin embargo, si el usuario se arrastra en una dimensión que no está relacionada con el cliente como:

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]

El resultado del recuento obviamente se vuelve incorrecto.

¿Hay alguna forma de determinar si una dimensión está relacionada con el cliente para que pueda excluirla de la consulta MDX generada?

¿Fue útil?

Solución 2

Resolvió el problema usando el Existes (set_expression1, set_expression2 [, mideGroupName]) función. No es necesario determinar manualmente qué dimensiones están relacionadas. los Existe la función filtra las tuplas no relacionadas, dejando solo el{ [Customer].[Customer].Children, [Customer].[Gender].[Female]} establecido para hacer el conteo.

Aquí está el 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]

Otros consejos

Esta información se puede recuperar del cubo hasta Amo. los Cube La clase contiene todos los metadatos del cubo que necesitará.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top