【问题标题】:MDX - TopCount plus 'Other' or 'The Rest'MDX - TopCount 加上“其他”或“其余”
【发布时间】:2010-10-21 17:07:01
【问题描述】:

我创建了一个 MDX 查询,它计算 TOP 10 ZipCodes(根据我的 Patient Stay measure):

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 个对应一个,第 11 个对应一个是剩余邮政编码的总和。

我是 MDX 的新手,但这听起来应该是不可能的。有人有什么想法或建议吗?

【问题讨论】:

    标签: mdx performancepoint


    【解决方案1】:

    我会尽力使用未经测试的代码,所以这里是:

    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 查询。

    干杯,
    埃里克

    【讨论】:

    • 创建 SET [Patient].[ByZipCode].[Top10ZipCodes] 时出现语法错误。我只需要删除维度引用(将 SET 重命名为 [Top10ZipCodes]),这对我来说 100% 有效。非常感谢,我什至觉得我学到了一些东西,这比仅仅回答问题还要好。
    • 啊,是的。我想我当时是一种会员类型的心情。无论如何,很高兴我能帮上忙!
    • 在我的情况下,我必须确保在查询成员以排除 [All] 时采用了正确的层次结构级别,否则结果中的数量会翻倍。只是对将来可能会遇到此问题的人的提示。
    猜你喜欢
    • 1970-01-01
    • 2015-03-18
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    相关资源
    最近更新 更多