SSAS mdx查询ParallelPeriod

时间:2016-04-03 21:28:10

标签: ssas mdx

我想使用MDX查询在SSAS中创建计算度量。该措施应返回一年内和去年同期的平均金额。我发现了ParallelPeriod函数,但无法使用它。

我的查询应该如下所示

(
 AGGREGATE(
   {[TF_Product].[LastDayOfMonth]}
   *{[TF_Product].[Category].&[Deposits]},
   [Measures].[Montant]
 )
 +
 AGGREGATE(
   { Get the date of the same period last year using parallelperiod}
   *{[TF_Product].[Category].&[Deposits]},
   [Measures].[Montant]
 )
)/2

Screenshot

谢谢。

2 个答案:

答案 0 :(得分:0)

这样的事情有用吗?

...
MEMBER [Measures].[Avg of 2 Mths] AS
  Avg(
    {[Date].[Month].CurrentMember.Lag(12),[Date].[Month].CurrentMember}
    [Measures].[Sales Quantity]
  )
...

它适用于这种情况:

WITH 
  MEMBER [Measures].[Avg of 2 Mths] AS 
    Avg
    (
      {
        [Date].[Calendar].CurrentMember.Lag(12)
       ,[Date].[Calendar].CurrentMember
      }
,[Measures].[Internet Sales Amount]  
  ) 
SELECT 
  {[Measures].[Internet Sales Amount],[Measures].[Avg of 2 Mths]} ON 0
 ,[Date].[Calendar].[Month] ON 1
FROM [Adventure Works];

结果如下:

enter image description here

(755527.89 + 577314)/ 2 = 666420.95

答案 1 :(得分:0)

这有效吗?

with member [Measures].AvgAmnt as
(
 AGGREGATE(
   {[TF_Product].[Calendar].Currentmember}
   *{[TF_Product].[Category].Currentmember},
   [Measures].[Montant]
 )
 +
 AGGREGATE(
   {ParallelPeriod([TF_Product].[Calendar].[Month],1,[TF_Product].[Calendar].Currentmember)}
   *{[TF_Product].[Category].Currentmember},
   [Measures].[Montant]
 )
)/2

select [TF_Product].[Calendar].[Date].members * [TF_Product].[Category].members on 1,
[Measures].AvgAmnt on 0
from [SomeCube]

假设您的多维数据集中有日期层次结构(日历)。