Pergunta

Eu criei uma consulta MDX que calcula os TOP 10 Zipcodes (de acordo com meu paciente medida estadia) 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 é usado para preencher 100% gráfico empilhado Bar PerformancePoint. O cliente pediu que uma vez que este é um gráfico de 00% com base, que fixo o resto dos códigos postais em um campo "Outros", de modo que deve haver 11 valores: um para cada um dos top 10, e um décimo primeiro, que é uma soma dos restantes Zip Codes.

Eu sou um novato extremo para MDX, mas isso não souund como ele deve ser impossível. Alguém tem alguma idéia ou sugestão?

Foi útil?

Solução

Eu vou fazer o meu melhor com código não testado, então aqui vai:

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 )

O que isto faz é cria um conjunto de seu top 10 ZIP códigos e, em seguida agregados (diferentes do que soma !!!) todos os códigos postais, com exceção de seu top 10.

Além disso, se este é um conjunto comum (top 10 ZIP códigos), você pode querer fazer um set no cubo, onde você pode reutilizá-lo ad nauseum, sem ter que mudar todas as consultas MDX que você tem.

Cheers,
Eric

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top