如何编写同时按日期范围和维度成员值进行切片的mdx查询

如何编写同时按日期范围和维度成员值进行切片的mdx查询,mdx,mondrian,Mdx,Mondrian,我需要编写一个mdx查询,该查询通过维度值以及日期范围来限制其结果。我知道如何做一个或另一个,但我不能同时想出如何做两个 这适用于日期范围: SELECT {[Measures].[Hours]} ON COLUMNS, [Time Type].[Type].Members ON ROWS FROM [cube] WHERE {[Date].[Date ISO].[2013-01-26]:[Date].[Date ISO].[2013-06-25]} 这适用于成员切片器: SELECT {[

我需要编写一个mdx查询,该查询通过维度值以及日期范围来限制其结果。我知道如何做一个或另一个,但我不能同时想出如何做两个

这适用于日期范围:

SELECT {[Measures].[Hours]} ON COLUMNS, [Time Type].[Type].Members ON ROWS 
FROM [cube]
WHERE {[Date].[Date ISO].[2013-01-26]:[Date].[Date ISO].[2013-06-25]}
这适用于成员切片器:

SELECT {[Measures].[Hours]} ON COLUMNS, [Time Type].[Type].Members ON ROWS 
FROM [cube]
WHERE [Time Type].[Allocation Type].[Direct]
如何同时通过这两个WHERE子句值约束结果?我试着把它们放在同一个地方,就像这样:

SELECT {[Measures].[Hours]} ON COLUMNS, [Time Type].[Type].Members ON ROWS 
FROM [cube]
WHERE ([Time Type].[Allocation Type].[Direct],
    {[Date].[Date ISO].[2013-01-26]:[Date].[Date ISO].[2013-06-25]})
但Mondrian的回答是:没有函数匹配签名(,)

注意Mondrian不支持子查询,否则我会这样做


我想我可能需要在我的行上使用一个过滤函数来过滤我的成员约束,但我需要过滤一些我不想显示的内容,我不知道该怎么做。

我认为crossjoin就是这样的答案:

SELECT {[Measures].[Hours]} ON COLUMNS, [Time Type].[Type].Members ON ROWS 
FROM [cube]
WHERE CROSSJOIN([Time Type].[Allocation Type].[Direct],
    {[Date].[Date ISO].[2013-01-26]:[Date].[Date ISO].[2013-06-25]})
CROSSJOIN将“Direct”成员和我的范围内的日期的所有组合创建为我的WHERE切片器的元组。我认为这是正确的答案