Как связать 2 листа с одинаковыми полями - PullRequest
0 голосов
/ 12 марта 2020

Мне нужна помощь в попытке связать 2 листа, которые имеют несколько фильтров, которые я настроил, но оба находятся в отдельных таблицах. Причина в том, что у меня есть несколько агрегированных столбцов, которые отличаются для двух таблиц, и я хочу сохранить это отдельно, так как я буду строить больше листов вместе с I go.

Фильтры, которые являются то же самое на 2 листах:

патч менеджера продуктов we_date

С помощью менеджера данных мне удалось создать связь между двумя таблицами для we_date, но из чтения на этом сайте и других поисков в Google я не могу установить какие-либо связи между этими таблицами, и вот где я застрял.

Теперь 2 листа позволят мне фильтровать, используя we_date, но если я использую фильтры для продукта, менеджера или тогда на моем 2-м листе ничего не происходит, поскольку они не связаны между собой.

В настоящее время в моем редакторе загрузки данных у меня есть 2 раздела запросов на выборку, например:

Table1

QUALIFY *;
w:
SELECT
*
FROM
table1
;
UNQUALIFY *;

Table2

QUALIFY *;
w_c:
SELECT
*
FROM
table2
;
UNQUALIFY *;

Я был бы очень признателен если кто-то может посоветовать исправить проблему, с которой я столкнулся.

1 Ответ

0 голосов
/ 17 марта 2020

В Qlik имена полей одинаковых значений из разных таблиц автоматически связываются .

Когда вы звоните Qualify *, вы фактически переименовываете все имена полей и явное указание НЕ связывать.

Посмотрите документацию Qlik Sense по Qualify *:

Автомат c объединяет поля с одинаковыми именами в разных таблицах может быть приостановлено с помощью оператора qualify, который квалифицирует имя поля с его именем таблицы. Если указано, имена полей будут переименованы, когда будут найдены в таблице. Новое имя будет в форме tablename.fieldname. Имя таблицы эквивалентно метке текущей таблицы или, если метки не существует, имени, которое появляется после в операторах LOAD и SELECT.


Мы можем использовать as, чтобы вручную переназначить имена полей.

SELECT customer_id, private_info as "private_info_1", favorite_dog from table1;
SELECT customer_id, private_info as "private_info_2", car from table2;

Или мы можем правильно использовать Qualify. Пример:

table1 и table2 имеют поле customer_id и поле private_info. Мы хотим, чтобы поле customer_id было ассоциативным значением, а private_info - нет. Мы будем использовать QUALIFY для private_info, которую затем Qlik будет переименовывать на основе имени файла.

QUALIFY private_info;
SELECT * from table1;
SELECT * from table2;

Тогда будут следующие имена полей: customer_id (связанный), table1.private_info и table2.private_info

...