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, чтобы у вас был этот ключ как единственное соединение между вашими таблицами.