Qlik Sense: Left Соедините две резидентные таблицы - PullRequest
0 голосов
/ 31 августа 2018

У меня есть две таблицы:

violations_details:
LOAD
    "appname",
    "snapshot_id",
    "metric_id",
    "object_id",
    "object_type",
    "object_full_name",
    "metric_num_value",
    "status",
    "module_name",
    "Anz_Fehler",
    "violations_details_kz",
    "error_abs";
SQL SELECT 
    "appname",
    "snapshot_id",
    "metric_id",
    "object_id",
    "object_type",
    "object_full_name",
    "metric_num_value",
    "status",
    "module_name",
    1 as "Anz_Fehler",
    1 as "violations_details_kz",
    CASE WHEN status = 'Added' THEN 1 
         WHEN status = 'Deleted' THEN -1 
         ELSE 0
    END as error_abs
FROM "postgres"."cast_xapp_tools"."datapond_violations_details";

и

LOAD
    gen_id,
    gen_app,
    gen_patt1,
    gen_patt2,
    gen_class FROM [lib://AttachedFiles/gen_pattern.xlsx] (ooxml, embedded labels, table is tbl_gen_pattern);

Теперь я хочу присоединить столбец gen_id к таблице violing_details, где имя_файла_объекта похоже на gen_patt1. Если он не совпадает с gen_id в нарушение_детали, должно быть пустым.

Размер: нарушение таблицы> 4 миллиона строк talbe gen_pattern = 55 строк

Любая простая идея сделать это? Я думаю, что я должен использовать резидентное предложение внутри, но каждая попытка не удалась.

Спасибо

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Вы довольно близки - на самом деле вам не нужно использовать резидент, так как вы можете присоединиться к нему сразу после загрузки. Qlik включается в поля с одинаковыми именами. Я не уверен, какое поле вам нужно, поэтому я предположил, что object_id был таким же, как gen_id (обратите внимание, как я изменил object_id на псевдоним gen_id). Теперь Qlik знает, как присоединиться к таблицам в этом поле (хотя вы можете присоединиться к нему в другом поле).

violations_details:
LOAD
    "appname",
    "snapshot_id",
    "metric_id",
    "object_id" as gen_id,
    "object_type",
    "object_full_name",
    "metric_num_value",
    "status",
    "module_name",
    "Anz_Fehler",
    "violations_details_kz",
    "error_abs";
SQL SELECT 
    "appname",
    "snapshot_id",
    "metric_id",
    "object_id",
    "object_type",
    "object_full_name",
    "metric_num_value",
    "status",
    "module_name",
    1 as "Anz_Fehler",
    1 as "violations_details_kz",
    CASE WHEN status = 'Added' THEN 1 
         WHEN status = 'Deleted' THEN -1 
         ELSE 0
    END as error_abs
FROM "postgres"."cast_xapp_tools"."datapond_violations_details";

left join (violations_details)
LOAD
    gen_id,
    gen_app,
    gen_patt1,
    gen_patt2,
    gen_class 
FROM [lib://AttachedFiles/gen_pattern.xlsx] (ooxml, embedded labels, table is tbl_gen_pattern);
0 голосов
/ 02 сентября 2018
Violations_details:
LOAD
    "appname",
    "snapshot_id",
    "metric_id",
    "object_id",
    "object_type",
    "object_full_name" as gen_id,
    "metric_num_value",
    "status",
    "module_name",
    "Anz_Fehler",
    "violations_details_kz",
    "error_abs";
SQL SELECT 
    "appname",
    "snapshot_id",
    "metric_id",
    "object_id",
    "object_type",
    "object_full_name",
    "metric_num_value",
    "status",
    "module_name",
    1 as "Anz_Fehler",
    1 as "violations_details_kz",
    CASE WHEN status = 'Added' THEN 1 
         WHEN status = 'Deleted' THEN -1 
         ELSE 0
    END as error_abs
FROM "postgres"."cast_xapp_tools"."datapond_violations_details";

Left join

LOAD
    gen_id,
    gen_app,
    gen_patt1,
    gen_patt2,
    gen_class FROM [lib://AttachedFiles/gen_pattern.xlsx]  (ooxml, embedded labels, table is tbl_gen_pattern);
...