0

我有一个 ROLAP 多维数据集 - Pivot4j 0.9、Olap4j 1.1.0、MySQL。

当我运行以下 MDX 时,我可以在 where 子句中看到一个附加条件,它导致结果语句不返回任何行。

SELECT Hierarchize({[Measures].[Unique Users]}) ON COLUMNS,  NON EMPTY Hierarchize([dimBrowserType].AllMembers) ON ROWS  FROM [Sessions]

生成的 SQL...

17:28:08,536 DEBUG RolapUtil:319 - Segment.load: done executing sql [
select `meta_date`.`date_day` as `c0`, count(distinct `sessions_551d03b3e4b0dc830608a95b`.`userId`) as `m0` 
from `meta_date` as `meta_date`, `sessions_551d03b3e4b0dc830608a95b` as `sessions_551d03b3e4b0dc830608a95b` 
where `sessions_551d03b3e4b0dc830608a95b`.`daykey` = `meta_date`.`daykey` 
and `meta_date`.`date_day` = '2015-01-01' 
group by `meta_date`.`date_day`
], exec+fetch 44 ms, 0 rows, ex=7, close=7, open=[]

Olap4j 添加了这个子句...

and `meta_date`.`date_day` = '2015-01-01'

...这与初始 MDX 中的任何内容都无关。date_day 的这个特定值没有数据,因此查询不返回任何数据。

这可能是什么原因造成的?

4

1 回答 1

1

您可能在日期层次结构中没有“所有成员”。MDX 规范说,在这种情况下,使用第一个成员。

尝试添加hasAll=true到您的层次结构。

于 2015-06-18T17:53:24.047 回答