Ssas 使用另一个维度值的Where子句

Ssas 使用另一个维度值的Where子句,ssas,mdx,Ssas,Mdx,我试图用where子句在多维数据集中创建一个计算成员,但无法计算如何获得正确的结果 我使用下面的代码创建了一个计算成员“Outlook”,只显示预测值 CREATE MEMBER CURRENTCUBE.[Measures].[Outlook] AS SUM(([Source Profile].[Source Profile Hierarchy].CurrentMember, [Source Profile].[Profile Level01].&[Outlook])

我试图用where子句在多维数据集中创建一个计算成员,但无法计算如何获得正确的结果

我使用下面的代码创建了一个计算成员“Outlook”,只显示预测值

CREATE MEMBER CURRENTCUBE.[Measures].[Outlook]
 AS SUM(([Source Profile].[Source Profile Hierarchy].CurrentMember,
         [Source Profile].[Profile Level01].&[Outlook]),
        [Measures].[USD Amount]), 
FORMAT_STRING = "#,##0;(#,##0)", 
VISIBLE = 1 ,  DISPLAY_FOLDER = 'USD' ,  ASSOCIATED_MEASURE_GROUP = 'CARS'; 

现在,我想根据另一个隐藏维度“Current_Month”动态过滤结果。此维度始终具有当前财务期间值及其对应的outlook配置文件

Year_Month  Outlook_Profile
2015010     10 + 2
预期结果应为“Outlook”度量,显示基于当前_月维度的值,即“10+2”,其余应为0

为了用SQL术语解释需求,我想在MDX中实现以下功能

Where Fact.Source_Profile=Dimension.Source_Profile
而不是

Where Fact.Source_Profile='10 + 2'

我不知道如何在Where子句中或通过其他方式实现这一点。我可以看到硬编码值的示例,如year.&[2015],但没有看到使用动态值的示例。

我自己找到了一个解决方案,并考虑分享相同的解决方案。使用StrToMember函数在此处将隐藏维度的成员作为变量传递

CREATE MEMBER CURRENTCUBE.[Measures].[Outlook]
 AS (
        Sum
            (
                (
                    [Source Profile].[Source Profile Hierarchy].CurrentMember,
                    strtomember("[Source Profile].[Source Name].&[" + [Outlook Profile].[Outlook Profile].&[1].Member_Caption + "]")
                )
            ,[Measures].[USD Amount]
        )
), 
FORMAT_STRING = "#,##0;(#,##0)", 
VISIBLE = 1 ,  DISPLAY_FOLDER = 'USD' ,  ASSOCIATED_MEASURE_GROUP = 'CARS'  ; 

我不确定我是否清楚地发布了我的问题:(我想做的就是(用SQL术语)Where Fact.Source Profile=Dimension.Source Profile.The Dimension.Source Profile每月都会更改,我不确定如何实现这一点。