我(根据我的患者保持量度)创建的MDX查询,其计算TOP 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,但这并不souund像它应该是不可能的。没有人有任何意见或建议?

有帮助吗?

解决方案

我会尽我所能与未经测试的代码,所以这里有云:

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位邮政编码),您可能希望在立方体,在那里你可以重复使用它广告nauseum,而无需改变你拥有的每MDX查询一组。

干杯,结果 埃里克

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top