#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 годов, и, похоже, оно работает.