StrToMember不接受计算量度(mdx) [英] StrToMember does not accept calculated measure (mdx)
问题描述
我尝试通过使用一些经过计算的度量来创建成员(我在这里将其称为"MyDay").我在轴上返回日期成员,并且这些成员具有我要使用的属性.我可以返回属性本身,但不能创建成员并使用它.
I try to create a member by using some calculated measure (I have called it 'MyDay' here). I return date members on an axis and the members have a property which I want to use. I can return the property itself, but cannot create the member and work with it.
WITH
MEMBER [Measures].[MyDay] as DatePart("d", MyDateDimension.CurrentMember.Properties("MyProperty"))
MEMBER MyDateDimension.[MyMember] AS
STRTOMEMBER("MyDateDimension.&[2015]&[4]&[" + CStr([Measures].[MyDay]) + "]")
MEMBER [Measures].[SomeOther] as (MyDateDimension.[MyMember], [Measures].[Other]
SELECT
{
MyDateDimension.Members)
} ON COLUMNS,
{
[Measures].[MyDay] //works,
[Measures].[SomeOther] //error
}
如果我将"MyDateDimension.CurrentMember"替换为某些硬编码的日期成员, 它工作正常. 而且这也可以:
If I replace 'MyDateDimension.CurrentMember' by some hard coded date member, it works fine. And this also works:
MEMBER [Measures].[SomeOther] as (STRTOMEMBER("MyDateDimension.&[2015]&[4]&[" + CStr([Measures].[MyDay]) + "]"), [Measures].[Other])
推荐答案
如果将strToMember直接放在SomeMeasure中,则事情开始起作用:
If you put the strToMember directly in the SomeMeasure then things start to function:
WITH
MEMBER [Measures].[MyDay] AS
Datepart
("d"
,[Date].[Calendar].CurrentMember.Member_Caption
)
MEMBER [Date].[Calendar].[MyMember] AS
StrToMember
(
'[Date].[Calendar].&[200603' + Cstr([Measures].[MyDay]) + ']'
,constrained
)
MEMBER [Measures].[SomeOther] AS
(
//[Date].[Calendar].[MyMember]
StrToMember
(
'[Date].[Calendar].&[200603' + Cstr([Measures].[MyDay]) + ']'
,constrained
)
,[Measures].[Internet Sales Amount]
)
SELECT
{
[Measures].[MyDay]
,[Measures].[SomeOther]
} ON COLUMNS
,Tail
(
Descendants
(
[Date].[Calendar].[Month].&[2005]&[8]
,[Date].[Calendar].[Date]
)
,10
) ON ROWS
FROM [Adventure Works];
稍微整齐的版本:
WITH
MEMBER [Measures].[MyDay] AS
Datepart
("d"
,[Date].[Calendar].CurrentMember.Member_Caption
)
MEMBER [Measures].[MyDayString] AS
'[Date].[Calendar].&[200603' + Cstr([Measures].[MyDay]) + ']'
MEMBER [Measures].[SomeOther] AS
(
StrToMember
(
[Measures].[MyDayString]
,constrained
)
,[Measures].[Internet Sales Amount]
)
SELECT
{
[Measures].[MyDay]
,[Measures].[SomeOther]
} ON COLUMNS
,Tail
(
Descendants
(
[Date].[Calendar].[Month].&[2005]&[8]
,[Date].[Calendar].[Date]
)
,10
) ON ROWS
FROM [Adventure Works];
以上返回以下内容:
所以在您的多维数据集中是这样的:
So something like this in your cube:
WITH
MEMBER [Measures].[MyDay] AS
Datepart
("d"
,MyDateDimension.CurrentMember.Properties("MyProperty")
)
MEMBER [Measures].[MyDayString] AS
StrToMember('MyDateDimension.&[2015]&[4]&[' + Cstr([Measures].[MyDay]) + ']')
MEMBER [Measures].[SomeOther] AS
(
StrToMember
(
[Measures].[MyDayString]
,constrained
)
,[Measures].[Other]
)
SELECT
{
[Measures].[MyDay]
,[Measures].[SomeOther]
} ON COLUMNS
,{MyDateDimension.MEMBERS} ON ROWS
FROM YourCube;
这篇关于StrToMember不接受计算量度(mdx)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!