使用日期选择器范围作为MDX查询中的过滤器

时间:2017-04-19 10:33:15

标签: filter datepicker mdx iccube-reporting

我针对演示Sales多维数据集创建了一个报告。 它包括一个日期选择器,其范围(从&到),其中" on选择"事件被命名为日期窗口 &安培;一个带有MDX查询的数据透视表,类似于:

SELECT 
        [Time].[Calendar].[Day].[7 Jan 2005]
      : 
        [Time].[Calendar].[Day].[10 Jan 2005] ON 0
FROM [Sales];  

我想用日期选择器中的from和to替换查询中的固定日期。怎么做?

3 个答案:

答案 0 :(得分:2)

mdx的许多方言中,如果您有一个名为@aDate的参数,让我们假设其当前值为7 Jan 2005,那么您可以通过{{mdx添加strToMember 1}}这样的功能:

strToMember('[Time].[Calendar].[Day].[' + @aDate + ']')

strToSet这样的函数:

strToSet('[Time].[Calendar].[Day].[' + @aDate + ']:[Time].[Calendar].[Day].[' + @aSECONDDate + ']')

答案 1 :(得分:2)

在icCube中,我更倾向于使用MDX函数LookupByKey而不是strToMember。除了更好的输入外,编译器还可以轻松猜出在少数情况下方便使用的层次结构。恕我直言,尝试从不使用StrToMember。类似的东西:

 [Calendar].[Day].lookupByKey( StringToDate(@date,"d/M/yyyy") )

要将字符串解析为日期,您可以使用一些功能(herehere)。

我认为范围过滤器直接在事件中直接返回MDX范围表达式(如果不是这样,请直接联系我们)。

答案 2 :(得分:1)

如上所述,IcCube Date Picker小部件返回范围的有效MDX值。以下是demo report所描述的配置。

有关详细信息,请查看日期选择器的设置和数据透视表的mdx设置。