Qlikview оставил объединение двух таблиц и сгенерировал данные в qvd - PullRequest
0 голосов
/ 31 августа 2018

Я относительно новичок в qlikview и не уверен, совпадает ли левое соединение с обычным sql: SELECT column_name (s) ИЗ таблицы 1 LEFT JOIN table2 ON table1.column_name = table2.column_name;

Хотел бы, чтобы вы помогли присоединиться к таблицам, используя TRIP_ID, и классифицировали период с помощью ARRIVE_DT, а затем сгенерировали данные в qvd

.
LOAD "TRIP_ID",
    "PM_M",
    "ARRIVE_DT",
    "CHASSIS_MAX_LADEN_WEIGHT_Q";
SQL SELECT *
FROM Table1."V_GATE_PM_TRIP";

LOAD "TRIP_ID",
    "CREATE_DT",
    "MODIFIED_DT";
SQL SELECT *
FROM Table2."V_GATE_PM_TRIP_CNTR";

Спасибо.

Ответы [ 3 ]

0 голосов
/ 03 сентября 2018

Это то, что мне удалось сделать после просмотра онлайн, и он сгенерировал qvd с данными, отсортированными по дате.

TEMP_TABLE1:
LOAD "TRIP_ID",
    "PM_M",
    "ARRIVE_DT";
SQL SELECT *
FROM EODWADMIN."V_GATE_PM_TRIP";

LEFT JOIN 

LOAD "TRIP_ID",
    "CREATE_DT",
    "MODIFIED_DT";
SQL SELECT *
FROM EODWADMIN."V_GATE_PM_TRIP_CNTR";


TABLE2:
LOAD*, 1 AS FLAG
RESIDENT TEMP_TABLE1 ORDER BY ARRIVE_DT;

STORE TABLE2 INTO PM.QVD (QVD);
0 голосов
/ 02 ноября 2018

В QlikView LEFT JOIN работает немного иначе, чем в SQL. В SQL вы указываете поля из обеих таблиц в предложении левого объединения:

SELECT *
FROM Table1 t1
     LEFT JOIN Table2 t2 on t1.FieldA=t2.FieldB

В QlikView JOIN работает с именем поля, вам не нужно указывать имя. Если поля имеют разные имена, вы должны переименовать одно из них (или оба), чтобы получить одно и то же имя:

TABLE1:
LOAD
    TRIP_ID1 as JOIN_KEY,
    PM_M,
    ARRIVE_DT
FROM Tabel1
;

LEFT JOIN (TABLE1)
LOAD
    TRIP_ID2 as JOIN_KEY,
    CREATED_DT,
    MODIFIED_DT
FROM Table2
;
0 голосов
/ 02 сентября 2018

Просто добавьте LEFT JOIN перед второй загрузкой.
Если вы загружаете обе таблицы из одного и того же источника SQL, просто используйте синтаксис SQL так же, как вы написали в своем вопросе

...