Pivot4j / Olap4j向生成的查询的where子句添加条件

时间:2015-06-18 16:32:48

标签: olap olap4j

我有一个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的这个特定值没有数据,因此查询不返回任何数据。

可能导致这种情况的原因是什么?

1 个答案:

答案 0 :(得分:1)

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

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