2017-02-17 24 views
0

Я хочу выбрать [paid amt] из «2006 квартал 1» и ParallelPeriod, который является «Четвертью кварталом 1». Мой запрос ниже: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]; 

Если вы хотите continus с пунктом WITH тогда мы могли бы использовать выше в кортеже:

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]; 

 Смежные вопросы

  • Нет связанных вопросов^_^