2017-02-17 61 views
0

我想選擇「2006第1季度」的[paid amt]和「2005第1季度」的ParallelPeriod。我的查詢如下:MDX ParallelPeriod CurrentMember

WITH 

MEMBER [Measures].[ParallelPeriod Qtr] AS 
PARALLELPERIOD([Svc Date].[Svc Date].[Svc Qtr], 4, [Svc Date].[Svc Date].CURRENTMEMBER) 

SELECT 
NON EMPTY 
{ [Measures].[Pd Amt], [Measures].[ParallelPeriod Qtr] } 
ON COLUMNS, 
NON EMPTY 
{ 
[Svc Date].[Svc Date].[Svc Qtr].&[20061] 
} 
ON ROWS 

FROM [health costings model] 

但是[Measures].[ParallelPeriod Qtr]不返回該值。

有人知道我的MDX查詢出了什麼問題嗎?或者還有什麼其他方式可以產生期間期間差異。非常感謝!

回答

2

我認爲你需要使用你的年份水平,並找到前一年的等價季度?

下面是否返回任何內容?

SELECT 
    NON EMPTY { [Measures].[Pd Amt], [Measures].[ParallelPeriod Qtr] } ON COLUMNS, 
    NON EMPTY 
    PARALLELPERIOD( 
     [Svc Date].[Svc Date].[Svc Year] 
    , 1 
    , [Svc Date].[Svc Date].[Svc Qtr].&[20061] 
    ) 
    ON ROWS 
FROM [health costings model]; 

在你最初做你可能也不會與功能PARALLELPERIOD打擾,你可以只嘗試使用.LAG(4)條款。因此,它可能被簡化爲:

SELECT 
    NON EMPTY { [Measures].[Pd Amt], [Measures].[ParallelPeriod Qtr] } ON COLUMNS, 
    NON EMPTY 
    [Svc Date].[Svc Date].[Svc Qtr].&[20061].LAG(4) 
    ON ROWS 
FROM [health costings model]; 

如果您想用WITH子句continus那麼我們就可以用上面的元組:

WITH 
MEMBER [Measures].[ParallelPeriod Qtr] AS 
    (
    [Svc Date].[Svc Date].CURRENTMEMBER.LAG(4) 
    ,[Measures].[Pd Amt] 
    ) 
SELECT 
    NON EMPTY 
     { [Measures].[Pd Amt] 
     , [Measures].[ParallelPeriod Qtr] } ON 0, 
    NON EMPTY 
    [Svc Date].[Svc Date].[Svc Qtr].&[20061] 
    ON 1 
FROM [health costings model];