我有年初至今的 MDX:
YTD( StrToMember(" [Time].[Year - Month - Date] .&[" + Format(now(), "yyyy-MM-" + "01T00:00:00") + "]"))
这很好用。
现在我试图制作 YTD Last Year MDX 所以:
PARALLERPERIOD([Time].[Year - Month - Date].[Year],1,YTD)
但它不起作用。
有什么建议我应该如何进行?
我有年初至今的 MDX:
YTD( StrToMember(" [Time].[Year - Month - Date] .&[" + Format(now(), "yyyy-MM-" + "01T00:00:00") + "]"))
这很好用。
现在我试图制作 YTD Last Year MDX 所以:
PARALLERPERIOD([Time].[Year - Month - Date].[Year],1,YTD)
但它不起作用。
有什么建议我应该如何进行?
根据MSDN, ParallelPeriod 接受 Member_Expression 作为第三个参数。这意味着您可以使用如下代码:
但是您无法使用 SET 表达式或实际 SET(即 {A:B} 或轴引用)作为 ParallelPeriod 参数
更好的选择是按如下方式定义您的 PY 度量:
CREATE MEMBER CURRENTCUBE.[Measures].[Value PY] AS Null
并将此代码添加到脚本中
([Measures].[Value PY] , [Time].[Year - Quarter - Month - Week - Day].MEMBERS) = Sum(Existing [Time].[Year - Quarter - Month - Week - Day].[Day].MEMBERS, (ParallelPeriod([Time].[Year - Quarter - Month - Week - Day].[Year]), [Measures].[Value]))
此解决方案适用于您的所有查询,无论您想在查询中使用单一时间成员还是一组成员都没有关系。