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

如何在多维数据集中不存在日期的两个日期之间在mdx中进行查询,mdx,pentaho,Mdx,Pentaho,我在mdx中查询DateFrom和DateTo两个日期之间的数据时遇到一些问题。简单地说,问题是,假设我们有3条[年][月][日]的记录: [2012][8][21] [2012][8][22] [2012][8][23] 如果我将DateFrom和DateTo作为数据库中不存在的内容传递,例如DateFrom=[2012].[8].[20]和DateTo=[2012].[8].[24],则会显示错误“Mondrian error:MDX object'[Date].[2012].[8].[2

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

[2012][8][21]
[2012][8][22]
[2012][8][23]
如果我将DateFrom和DateTo作为数据库中不存在的内容传递,例如
DateFrom=[2012].[8].[20]和DateTo=[2012].[8].[24]
,则会显示错误“Mondrian error:MDX object'[Date].[2012].[8].[20]'未在多维数据集的“电子邮件”中找到”

但是如果我在数据库中设置了DateFrom和DateTo,例如
DateFrom=[2012].[8].[21]和DateTo=[2012].[8].[23]
,它就可以工作了


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

一般来说,我建议您保持DateTime维度不带孔,并且在过去使用较旧的边界,在将来使用较远的边界,这样您就可以毫无问题地进行查询


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

我使用FirstChild和LastChild方法解决了此问题,谢谢@Michelelvis,您可以发布您的解决方案吗?我很想看看你是怎么解决的。感谢