我针对演示Sales多维数据集创建了一个报告。
它包括一个日期选择器,其范围(从&到),其中" on选择"事件被命名为日期窗口
&安培;一个带有MDX
查询的数据透视表,类似于:
SELECT
[Time].[Calendar].[Day].[7 Jan 2005]
:
[Time].[Calendar].[Day].[10 Jan 2005] ON 0
FROM [Sales];
我想用日期选择器中的from和to替换查询中的固定日期。怎么做?
答案 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") )
要将字符串解析为日期,您可以使用一些功能(here和here)。
我认为范围过滤器直接在事件中直接返回MDX范围表达式(如果不是这样,请直接联系我们)。
答案 2 :(得分:1)
如上所述,IcCube Date Picker小部件返回范围的有效MDX值。以下是demo report所描述的配置。
有关详细信息,请查看日期选择器的设置和数据透视表的mdx设置。