2014-09-01 94 views
0

我被这个问题困住了。我们有一个MDX需要更新以汇总最近六个月的报告,因此MDX会返回最近六个月的汇总数据。MDX过滤器条件集

我不是MDX的专家,有人可以请帮忙,这可以实现吗?

IDEA:我想过滤最近六个月的报告,但我不明白这是如何在语法上实现的。

MEMBER [TIME].[_TIME1] AS 'Aggregate({ [TIME].&[201401].lag(5):[TIME].&[201401] })' 

实际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] 
) 

回答

0

你问过这样的事情?:

WITH SET [Last 6 Months] AS 
       { 
        PARALLELPERIOD([Time].[Year - Quarter - Month - Week - Day].[Month], 
            5, 
            StrToMember("[Time].[Year - Quarter - Month - Week - Day].[Day].&[" + Format(Now(), "yyyy-MM-dd") + "T00:00:00]")).Parent.Parent 
        : 
        StrToMember("[Time].[Year - Quarter - Month - Week - Day].[Day].&[" + Format(Now(), "yyyy-MM-dd") + "T00:00:00]").Parent.Parent 
       } 
MEMBER [Time].[Year - Quarter - Month - Week - Day].[AggregatedMonths] AS Aggregate([Last 6 Months]) 

SELECT [Measures].[Your Measure] ON COLUMNS, 
[Time].[Year - Quarter - Month - Week - Day].[AggregatedMonths] ON ROWS 
FROM [Your Cube]