Pivot4j/Olap4j добавляет условие к предложению where сгенерированного запроса

У меня есть куб 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 ответ

Решение

Вероятно, у вас нет "всех членов" в иерархии дат. Спецификации MDX говорят, что в этом случае используется первый член.

Попробуйте добавить hasAll=true к вашей иерархии.

Другие вопросы по тегам