Я застрял в этой проблеме. У нас есть MDX, который необходимо обновить для агрегирования последних шестимесячных отчетов, начиная с текущего месяца, поэтому MDX возвращает агрегированные данные за последние шесть месяцев.MDX фильтр состояние комплект
Я не эксперт в области MDX, может кто-то помочь, как это можно достичь?
IDEA: Я думал фильтровать отчеты за последние шесть месяцев, но я не понимаю, как это можно достичь синтаксически.
MEMBER [TIME].[_TIME1] AS 'Aggregate({ [TIME].&[201401].lag(5):[TIME].&[201401] })'
Actual MDX запросов:
with
set [reports] as 'Filter(
[Report].[Report].Members,
Int([Measures].[Report Month Id]) = Int(([Measures].[Time Id], [TIME].&[201401])) and
Int([Measures].[Report Root Index Id]) = Int(([Measures]. [Index Id], [INDEX_1].[All].&[1]))
)'
set [Indexes] as 'Descendants([INDEX_1].[All].&[1])'
member [Measures].[N] as 'iif(Cstr([Measures].[Index Type Name]) = "Choice Index", ([Measures].[Direct Response Count]), ([Measures].[Direct Case Count]))'
member [Measures].[Score] as '([Measures].[Direct Score])'
member [Measures].[Item Id] as 'iif(isEmpty([Measures].[N]), null, [Measures].[Index Id])'
member [Measures].[Item Code] as 'iif(isEmpty([Measures].[N]), null, [Measures].[Index Code])'
member [Measures].[Org Id] as 'iif(isEmpty([Measures].[N]), null, [Measures].[Report Organisation Id])'
select
non empty crossjoin ([reports] , [indexes]) on rows ,
{
[Measures].[Org Id], [Measures].[Item Id], [Measures].[Item Code], [Measures].[N], [Measures].[Score]
} on columns
from [REPORT_SCORE]
where
(
[ORGANISATION].&[3196]
)