Ssas 使用另一个维度值的Where子句
我试图用where子句在多维数据集中创建一个计算成员,但无法计算如何获得正确的结果 我使用下面的代码创建了一个计算成员“Outlook”,只显示预测值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])
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每月都会更改,我不确定如何实现这一点。