Ssas 根据日期维度值筛选的TopCount

Ssas 根据日期维度值筛选的TopCount,ssas,mdx,Ssas,Mdx,我试图从贴现率为-20的任何指标中,以及在特定日期,按价值排名前10位的国家。我创建了一个简单的动态集,定义如下: CREATE DYNAMIC SET CURRENTCUBE.[Top10CountryBy20Disc] AS TopCount ( [Customer].[Country].members, 10, [Discount].[Discount].&[-20%]) ; 这将根据总体度量值列出前10名客

我试图从贴现率为-20的任何指标中,以及在特定日期,按价值排名前10位的国家。我创建了一个简单的动态集,定义如下:

CREATE DYNAMIC SET CURRENTCUBE.[Top10CountryBy20Disc]
 AS 

TopCount
        ( [Customer].[Country].members, 
                10,   [Discount].[Discount].&[-20%])
      ;
这将根据总体度量值列出前10名客户,但我需要筛选到特定日期。总的前10名与某个特定日期的前10名不同,因此我需要包含一些日期上下文。目前我得到的每个国家的数字都是正确的,但不正确的是国家名单(前十名名单)

我在许多其他报告中使用了下面列出的集合[最新版本],效果很好,但在使用上述集合时,我很难将其结合起来

CREATE DYNAMIC SET CURRENTCUBE.[Latest]
 AS FILTER( 
            [Date].[Date Key].[Date Key].members, IsDate([Date].[Date Key].currentmember.membervalue) 
AND (

            DateDiff("d", [Date].[Date Key].currentmember.membervalue,  IIF(Weekday(Now()) = 2, 3, 1)
            
    );
从逻辑上讲,我试图按照下面的思路做一些事情,这是无效的语法:

TopCount
        ( [Customer].[Country].members, 
                10,   ([Discount].[Discount].&[-20%], [Latest]))
      ;

非常感谢您对此提出一些建议/指导。

这种方法解决了我的问题:

GENERATE ( [Latest],
             {TopCount
                ( descendants([Customer].[Country],,AFTER), 
                    10,   
                    VBA!Abs(([Discount].[Discount].&[-20%], ([Measures].[MeasureName],[Date].[Date Key].currentmember)))
                )
            }
         );