0

我有年初至今的 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)

但它不起作用。

有什么建议我应该如何进行?

4

2 回答 2

0

根据MSDN, ParallelPeriod 接受 Member_Expression 作为第三个参数。这意味着您可以使用如下代码:

  • [时间]。[年-月-日]。当前成员
  • Tail(EXISTING [时间].[年-月-日].[年].allmembers,1).Item(0)
  • YTD(尾巴(现有 [时间].[年 - 月 - 日期].[年].allmembers,1).Item(0)).Item(0)

但是您无法使用 SET 表达式或实际 SET(即 {A:B} 或轴引用)作为 ParallelPeriod 参数

于 2015-02-02T18:18:40.320 回答
0

更好的选择是按如下方式定义您的 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]))

此解决方案适用于您的所有查询,无论您想在查询中使用单一时间成员还是一组成员都没有关系。

于 2015-05-19T11:45:04.377 回答