如何在多维数据集中不存在日期的两个日期之间查询mdx

时间:2012-08-21 07:04:24

标签: mdx pentaho

我在查询两个日期DateFrom和DateTo之间的mdx中的数据时遇到了一些问题。简单问题是,假设我们有[年] [月] [日]的3条记录:

[2012][8][21]
[2012][8][22]
[2012][8][23]

如果我传递DateFrom和DateTo,因为某些内容不在数据库中,例如DateFrom = [2012].[8].[20] and DateTo = [2012].[8].[24],则会显示错误“Mondrian Error:MDX object'[Date]。[2012]。[8]。 [20]'找不到立方体'电子邮件'“

但如果我将DateFrom和DateTo设置为数据库中的某些内容,例如DateFrom = [2012].[8].[21] and DateTo = [2012].[8].[23],则可以正常工作。

因为DateFrom和DateTo是从web ui中的Frond端传递的,所以我无法控制它,所以我认为我需要找到比DateFrom更大的最小值和比DateTo小的最大值,但我不知道如何,任何想法?或者我还有其他方法来解决这个问题吗?感谢。

1 个答案:

答案 0 :(得分:1)

一般情况下,我建议您保持DateTime维度没有漏洞,并且过去使用较旧的边界,将来使用较远的边界,这样您就可以毫无问题地进行查询。

如果您无法编辑多维数据集定义,可以在MDX中使用FirstChild和LastChild运算符来获取场景中的开始日期和结束日期(我假设您的日期已排序)。