Pentaho параметризованный источник данных

Я пытаюсь построить какой-либо параметризованный источник данных (SQL-запрос через jndi). запрос моего источника данных:

SELECT ${param_interval}(dim_date.date), count(docs_fact.id) as docs_count
FROM rel_docs_dates
left join docs_fact on rel_docs_dates.doc_id = docs_fact.id
left join dim_date on rel_docs_dates.date_id = dim_date.id

Parametr ${param_interval} может получить два значения: MONTH а также DAYи, как я проверил, он получил правильные значения. Но когда я пытаюсь сделать предварительный просмотр моей панели, я получаю предупреждение "компонент обработки ошибок".

Обратите внимание, что этот запрос (см. Ниже) работает нормально.

SELECT MONTH(dim_date.date), count(docs_fact.id) as docs_count, ${param_interval} as tmp_fiel
FROM rel_docs_dates
left join docs_fact on rel_docs_dates.doc_id = docs_fact.id
left join dim_date on rel_docs_dates.date_id = dim_date.id

Может кто-нибудь сказать мне, где ошибка? Или (может быть) этот способ использования параметров в источнике данных не поддерживается?

1 ответ

Решение

Наконец я нашел решение. это не то, что я хотел бы иметь, но это работает, и это самое главное.

я переписываю свой запрос с ограничением 'case' и, что важно, я изменил тип моего параметра со строки на числовой (строка не работает:(). Теперь мой запрос выглядит так:

    SELECT 
    case ${param_interval}
    when 1 then MONTH(dim_date.date)
    when 2 then DAY(dim_date.date)
    end
    ,count(docs_fact.id) as fact_count
    FROM rel_docs_dates
    left join docs_fact on rel_docs_dates.doc_id = docs_fact.id
    left join dim_date on rel_docs_dates.date_id = dim_date.id
    where  dim_date.date > LAST_DAY(DATE_SUB(CURDATE(), INTERVAL ${param_period}  MONTH))
     AND dim_date.date < LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 0 MONTH)) 
    group by
    case ${param_interval}
    when 1 then MONTH(dim_date.date)
    when 2 then DAY(dim_date.date)
    end
    order by YEAR(dim_date.date), MONTH(dim_date.date)

может быть, это поможет кому-то еще.

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