Pregunta

He creado una consulta MDX que calcula los 10 códigos postales TOP (según mi medida permanencia del paciente) como tal:

WITH
MEMBER [Discharge Date].[Y-M-D].[ Aggregation] AS 'AGGREGATE( EXISTING { [Current Month] } )', SOLVE_ORDER = 0

SELECT
NON EMPTY { [Measures].[Patient Stays] }
ON COLUMNS,

TOPCOUNT({ ORDER( HIERARCHIZE( { [Patient].[ByZipcode].[All].CHILDREN } ), ( [Measures].[Patient Stays] ), BDESC ) }, 10)
ON ROWS

FROM [Patient Stay]

WHERE ( [Discharge Date].[Y-M-D].[ Aggregation], [Facility].[ByAffiliation].CURRENTMEMBER, [Facility].[ByRegion].CURRENTMEMBER )

Esta consulta se utiliza para rellenar un PerformancePoint 100% gráfico de barras apiladas. El cliente ha pedido que, dado que esta es una gráfica basada en 00%, nos agrupamos el resto de los códigos postales en un campo de "Otros", esos valores que debe haber 11: uno para cada uno de los 10 primeros, y un undécimo cuales es una suma de los códigos postales restantes.

Soy un novato extrema a MDX, pero esto no souund como tiene que ser imposible. ¿Alguien tiene alguna idea o sugerencia?

¿Fue útil?

Solución

Me haré lo mejor con código no probado, así que aquí va:

WITH
MEMBER [Discharge Date].[Y-M-D].[ Aggregation] AS 'AGGREGATE( EXISTING { [Current Month] } )', SOLVE_ORDER = 0

SET [Top10ZipCodes] AS 
    (TOPCOUNT({ ORDER( HIERARCHIZE( { [Patient].[ByZipcode].[All].CHILDREN } ), ( [Measures].[Patient Stays] ), BDESC ) }, 10))

MEMBER [Patient].[ByZipCode].[OtherZipCodes] AS 
    (AGGREGATE({EXCEPT([Patient].[ByZipCode].Members, [Patient].[ByZipCode].[Top10ZipCodes])}))

SELECT
NON EMPTY { [Measures].[Patient Stays] }
ON COLUMNS,

{[Top10ZipCodes], [Patient].[ByZipCode].[OtherZipCodes]}
ON ROWS

FROM [Patient Stay]

WHERE ( [Discharge Date].[Y-M-D].[ Aggregation], [Facility].[ByAffiliation].CURRENTMEMBER, [Facility].[ByRegion].CURRENTMEMBER )

Lo que esto hace es crea un conjunto de sus 10 primeros códigos postales y, a continuación, los agregados (diferente de suma !!!) todos los códigos postales, con la excepción de su parte superior 10.

Además, si se trata de un conjunto común (10 mejores códigos postales), es posible que desee hacer un juego en el cubo, donde se puede reutilizar hasta la saciedad, sin tener que cambiar cada consulta MDX que tiene.

Saludos, España Eric

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