使用日期选择器范围作为 MDX 查询中的过滤器
Use date picker range as a filter in a MDX query
我针对演示销售多维数据集创建了一个报告。
它包括一个日期选择器,范围为(从 & 到),其中 "on selection" 事件被命名为日期 window。
& 一个枢轴 table 和一个 MDX
类似这样的查询:
SELECT
[Time].[Calendar].[Day].[7 Jan 2005]
:
[Time].[Calendar].[Day].[10 Jan 2005] ON 0
FROM [Sales];
我想用日期选择器中的从和到替换查询中的固定日期。怎么做?
在 mdx
的许多方言中,如果您有一个名为 @aDate
的参数,让我们假设其当前值为 7 Jan 2005
,那么您可以通过strToMember
函数如下:
strToMember('[Time].[Calendar].[Day].[' + @aDate + ']')
或者像这样的 strToSet
函数:
strToSet('[Time].[Calendar].[Day].[' + @aDate + ']:[Time].[Calendar].[Day].[' + @aSECONDDate + ']')
在 icCube 中,我宁愿使用 MDX 函数 LookupByKey instead of strToMember。除了更好的类型之外,编译器可以很容易地猜出在一些场景中很方便的层次结构。恕我直言,尽量不要使用 StrToMember。像 :
[Calendar].[Day].lookupByKey( StringToDate(@date,"d/M/yyyy") )
要将字符串解析为日期,您可以使用一些函数 (here and here)。
我认为范围过滤器直接 returns 直接在事件中的 MDX 范围表达式(如果不是这样,请直接联系我们)。
如上所述,IcCube 日期选择器小部件 returns 范围的有效 MDX 值。这里是 demo report 描述的配置。
有关更多详细信息,请查看 Date Picker 的设置和 Pivot Table 的 mdx 设置。
我针对演示销售多维数据集创建了一个报告。
它包括一个日期选择器,范围为(从 & 到),其中 "on selection" 事件被命名为日期 window。
& 一个枢轴 table 和一个 MDX
类似这样的查询:
SELECT
[Time].[Calendar].[Day].[7 Jan 2005]
:
[Time].[Calendar].[Day].[10 Jan 2005] ON 0
FROM [Sales];
我想用日期选择器中的从和到替换查询中的固定日期。怎么做?
在 mdx
的许多方言中,如果您有一个名为 @aDate
的参数,让我们假设其当前值为 7 Jan 2005
,那么您可以通过strToMember
函数如下:
strToMember('[Time].[Calendar].[Day].[' + @aDate + ']')
或者像这样的 strToSet
函数:
strToSet('[Time].[Calendar].[Day].[' + @aDate + ']:[Time].[Calendar].[Day].[' + @aSECONDDate + ']')
在 icCube 中,我宁愿使用 MDX 函数 LookupByKey instead of strToMember。除了更好的类型之外,编译器可以很容易地猜出在一些场景中很方便的层次结构。恕我直言,尽量不要使用 StrToMember。像 :
[Calendar].[Day].lookupByKey( StringToDate(@date,"d/M/yyyy") )
要将字符串解析为日期,您可以使用一些函数 (here and here)。
我认为范围过滤器直接 returns 直接在事件中的 MDX 范围表达式(如果不是这样,请直接联系我们)。
如上所述,IcCube 日期选择器小部件 returns 范围的有效 MDX 值。这里是 demo report 描述的配置。
有关更多详细信息,请查看 Date Picker 的设置和 Pivot Table 的 mdx 设置。