qlikview

QlikView Direct Discovery - WHERE clause


I've a question regarding QlikView Direct Discovery (DD).

I'm importing first a whole database table in memory of QlikView via

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

Afterwards DD: DIRECT QUERY DIMENSION customer_id, run_id MEASURE deal_id, type_id DETAIL kri1, kri2, kri3 FROM db_customer.qry_qlikview_direct_discovery;

The run_id represent a date and is several times per customer available.

The script run through without any error and the table relation looks quite good e.g. $Syn 1 = customer_id and run_id

However, if I select an customer and a run_id, QlikView tell me that the direct discovery can not run through.

Out of the ODBC errorlog:

1497001997:SELECT `customer_id`, `customer`, `run_id` FROM `db_customer`.`qry_qlikview_customer`;
1497001997:Using direct execution;
1497001998:query has been executed;
1497001998:SELECT DISTINCT `customer_id` FROM `db_customer`.`qry_qlikview_direct_discovery`;
1497001998:Using direct execution;
1497002100:query has been executed;
1497002101:SELECT DISTINCT `run_id` FROM `db_customer`.`qry_qlikview_direct_discovery`;
1497002101:Using direct execution;
1497002198:query has been executed;

If I change the position of run_id from DIMENSION to MEASURE, the dd statement give results back. Unfortunately for all run_id's and not only for the selected one.

Can anybody help or have an idea? Thank you very much in advance Best regards Andreas


Solution

  • Having a synthetic key $Syn 1 = customer_id and run_id on the direct discovery table is a known limitation and Qlik does not support this.

    Create a new key field in the database table that is a concatination of customer_id and run_id like customer_id|run_id and do the same in Qlik so you have that key as a single connection between your tables.