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
к вашей иерархии.