缺少边界日期的MDX日期范围查询

Dyn*_*ite 7 olap mdx pentaho data-warehouse mondrian

我需要按日期过滤的蒙德里安的MDX查询,其中一个或两个边界日期可能不存在.我使用下面的查询只要存在2013-01-01和2013-01-08维度就可以使用.如果两个日期中的一个不存在,则它不返回任何结果,即使两者之间的维度确实存在.即使在缺少边界日期维度的情况下,如何使此查询起作用?

SELECT
NON EMPTY {Hierarchize({[Measures].[Number of Something]})} ON COLUMNS,
NON EMPTY {[Date].[2013-01-01]:[Date].[2013-01-08]} ON ROWS
FROM [Users]
Run Code Online (Sandbox Code Playgroud)

Eze*_*uns 1

MDX 是在假设您引用的每个成员都存在的情况下构建的;最好通过一个单独的表来预先计算这些值,以确保所有可能的日期维度成员确实存在。

您可能会变得棘手并将该表实现为存储过程,但日期维度在总体方案中不会占用大量空间,因此您几乎不会这样做。

我不知道还有什么其他方法可以解决你的问题。