QlikView Direct Discovery - предложение WHERE

У меня есть вопрос, касающийся QlikView Direct Discovery (DD).

Сначала я импортирую всю таблицу базы данных в память QlikView через

SQL SELECT `customer_id`, `customer`, `run_id` FROM `db_customer`.`qry_qlikview_customer`;

После этого DD: DIRECT QUERY DIMENSION customer_id, run_id MEASURE deal_id, type_id DETAIL kri1, kri2, kri3 ОТ db_customer.qry_qlikview_direct_discovery;

Run_id представляет дату и доступна несколько раз для каждого клиента.

Скрипт запускается без каких-либо ошибок, и отношение таблицы выглядит довольно хорошо, например, $Syn 1 = customer_id и run_id

Однако, если я выберу клиента и run_id, QlikView скажет мне, что прямое обнаружение не может пройти.

Из журнала ошибок ODBC:

1497001997: SELECT customer_id, customer, run_id ОТ db_customer,qry_qlikview_customer; 1497001997: с использованием прямого исполнения; 1497001998: запрос был выполнен; 1497001998: ВЫБЕРИТЕ DISTINCT customer_id ОТ db_customer,qry_qlikview_direct_discovery; 1497001998: использование прямого исполнения; 1497002100: запрос выполнен; 1497002101: ВЫБЕРИТЕ DISTINCT run_id ОТ db_customer,qry_qlikview_direct_discovery; 1497002101: использование прямого исполнения; 1497002198: запрос был выполнен;

Если я изменю позицию run_id с DIMENSION на MEASURE, оператор dd вернет результаты. К сожалению для всех run_id и не только для выбранного.

Кто-нибудь может помочь или есть идея? Заранее большое спасибо С уважением, Андреас

1 ответ

Решение

Наличие синтетического ключа $Syn 1 = customer_id and run_id в таблице прямого обнаружения есть известное ограничение, и Qlik не поддерживает это.

Создайте новое ключевое поле в таблице базы данных, которое является объединением customer_id а также run_id лайк customer_id|run_id и сделайте то же самое в Qlik, чтобы у вас был этот ключ как единственное соединение между вашими таблицами.

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