MDX - 使用不同的日期间隔过滤不同的度量

时间:2017-09-13 09:14:36

标签: mdx mondrian

这与我提出的另一个问题类似(MDX - Running Sum over months limited to an interval),但我觉得我在那里偏离轨道。 让我重新开始吧。 我有一个计算的度量

MEMBER [Measures].[m_active] AS ([Measures].[CardCount], [Operation].[Code].[ACTIVATION])

我想在短暂的时间间隔内过滤(假设从2016年1月10日到2017年8月20日,这些是参数化的)

和我想要从日期维度开始(2010年1月1日)到最后一次过滤结束(在本例中为2017年8月20日)过滤的另一个计算度量,此度量是所有先例的总和

MEMBER [Measures].[tot_active] AS (
    SUM({[Calendar.YMD].[2010].Children}.Item(0):[Calendar.YMD].CurrentMember, ([Measures].[CardCount], [Operation].[Code].[ACTIVATION])) 

在列上我有这个计算的尺寸,在行上我有几个月(在小间隔范围内)和另一个尺寸交叉连接

SELECT
    {[Measures].[m_active], [Measures].[tot_attive]} ON COLUMNS,
    NonEmptyCrossJoin(
        {Descendants([Calendar.YMD].[2016].[Gennaio]:[Calendar.YMD].[2017].[Agosto], [Calendar.YMD].[Month])},
        {Descendants([CardStatus.Description].[All CardStatus.Descriptions], [CardStatus.Description].[Description])}
     ) on ROWS

如果我在WHERE子句中放置一个日期范围,第一个成员是完美的但是我破坏了第二个成员,我怎么能让第二个成员忽略WHERE子句?还是有另一种解决方案吗?

1 个答案:

答案 0 :(得分:0)

如果不进行测试,我对此行为有点不确定,但您是否尝试将过滤器从WHERE子句移到subselect

子选择形成如下:

...
FROM (
   SELECT 
      <date range for filter> ON 0
   FROM cubeName
)