Объединение QlikView из нескольких запросов

#sql #load #qlikview

#sql #загрузка #qlikview

Вопрос:

Я хочу загрузить запрос в файл QVW, который, но запрос возвращает 15 миллионов строк, поэтому время ожидания истекло. Я не могу перепроектировать запрос, поэтому вместо этого я разделил то, что возвращает запрос, на несколько разных запросов. Запрос собирает данные с 2014 по 2020 год, поэтому я сделал семь копий этого запроса для каждого года с 2014 по 2020 год и в каждом редактировал запрос, чтобы извлекать только строки из каждого года с 2014 по 2020 год. Запрос вызывается вызывается GEN_LED_VOUCHER_ROW_UNION_QRY . Итак, я вызвал новые запросы GEN_LED_VOUCHER_ROW_UNION_QRY_2014 GEN_LED_VOUCHER_ROW_UNION_QRY_2015 и так далее до GEN_LED_VOUCHER_ROW_UNION_QRY_2019

Я создал запросы и изменил Qlikview сценарий для загрузки каждого запроса (см. Сценарий ниже). Я просто попытался загрузить GEN_LED_VOUCHER_ROW_UNION_QRY_2019 и GEN_LED_VOUCHER_ROW_UNION_QRY_2020 вместо того, чтобы загружать их все. Однако я получил сообщение об ошибке GEN_LED_VOUCHER_ROW_UNION_QRY_2019 table not found , сценарий, который у меня есть в файле QVW, таков:

 SQL SELECT *
FROM IFSAPP."GEN_LED_VOUCHER_ROW_UNION_QRY_2019";

STORE GEN_LED_VOUCHER_ROW_UNION_QRY_2019 into [..QVDGEN_LED_VOUCHER_ROW_UNION_QRY.qvd]; 

DROP TABLE GEN_LED_VOUCHER_ROW_UNION_QRY_2019;


SQL SELECT *
FROM IFSAPP."GEN_LED_VOUCHER_ROW_UNION_QRY_2020";

STORE GEN_LED_VOUCHER_ROW_UNION_QRY_2020 into [..QVDGEN_LED_VOUCHER_ROW_UNION_QRY.qvd]; 

DROP TABLE GEN_LED_VOUCHER_ROW_UNION_QRY_2020;

EXIT SCRIPT;
  

Это то, что скрипт был раньше, и он не выдавал ошибок, но, как я описал, время ожидания истекло, потому что запрос GEN_LED_VOUCHER_ROW_UNION_QRY возвращает 15 миллионов строк.

 SQL SELECT *
FROM IFSAPP."GEN_LED_VOUCHER_ROW_UNION_QRY";

STORE GEN_LED_VOUCHER_ROW_UNION_QRY into [..QVDGEN_LED_VOUCHER_ROW_UNION_QRY.qvd]; 

DROP TABLE GEN_LED_VOUCHER_ROW_UNION_QRY;
  

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

Ответ №1:

просто выполните первый шаг SQL SELECT * FROM IFSAPP."GEN_LED_VOUCHER_ROW_UNION_QRY_2019"; , а затем посмотрите, каково результирующее имя таблицы.

В качестве альтернативы присвоите таблице запросов имя Qlik, указав в заголовке NAME: перед оператором select

 QUERY_2019:
 SQL SELECT *
 FROM IFSAPP."GEN_LED_VOUCHER_ROW_UNION_QRY_2019";
  

что касается конкатенации. Qlik должен автоматически объединять любые таблицы с одинаковыми именами столбцов, чтобы существовало только имя первой загруженной таблицы, остальные будут просто добавлены в ту же таблицу

Комментарии:

1. Хорошо, я попробую имя таблицы и посмотрю, что произойдет.

2. Я попробовал решение, предложенное для 2019 и 2020 годов, и, похоже, оно работает.