Вопрос

Я создал запрос MDX, который вычисляет ТОП-10 почтовых индексов (согласно моему показателю пребывания пациента) следующим образом:

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 )

Этот запрос используется для заполнения гистограммы PerformancePoint со 100% накоплением.Клиент попросил, чтобы, поскольку это диаграмма на основе !00%, мы объединили остальные почтовые индексы в поле «Другое», чтобы там было 11 значений:по одному на каждый из 10 крупнейших и одиннадцатый, который представляет собой сумму оставшихся почтовых индексов.

Я новичок в MDX, но это не кажется невозможным.Есть ли у кого-нибудь идеи или предложения?

Это было полезно?

Решение

Я сделаю все возможное с непроверенным кодом, поэтому вот:

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 )

При этом создается набор из 10 лучших почтовых индексов, а затем агрегируются (отличные от суммы!!!) все почтовые индексы, за исключением 10 лучших.

Кроме того, если это общий набор (10 крупнейших почтовых индексов), вы можете создать набор в кубе, где вы сможете повторно использовать его до тошноты, без необходимости изменять каждый имеющийся у вас запрос MDX.

Ваше здоровье,
Эрик

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top