我创建了一个 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 个值各有一个,第十一个值代表前 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 查询。
Cheers,
Eric
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)