Skip to main content
Announcements
Introducing Qlik Answers: A plug-and-play, Generative AI powered RAG solution. READ ALL ABOUT IT!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

How load many resident tables into single table?

Hi all.

I have many tables in QV base.

3 columns - standard and located in all tables.

1 column - located in 3 tables.

3 column - located in 3 separate tables (1 table - 1 column).

How create single table with all this data?

Or how load many resident tables into single table?

Скриншот 2014-08-20 15.57.11.png

Скриншот 2014-08-20 15.57.39.png

1 Solution

Accepted Solutions
Eugeny_Ilyin
Creator II
Creator II

День добрый.
Используй связку через Concatenate.

Если для двух таблиц необходимо выполнить связывание и они имеют разные наборы Поля, Связывание двух таблиц может быть выполнено принудительно с помощью префикса Concatenate. Этот оператор выполняет принудительное связывание с существующей именованной таблицей или последней созданной таблицей Логическая таблица. Принцип связывания аналогичен действию оператора SQL UNION с двумя отличиями: во-первых префикс Concatenate можно использовать независимо от того, имеют ли таблицы идентичные имена полей или нет; во-вторых удаление идентичных записей не выполняется.

Синтаксис имеет следующий вид:

concatenate[ (tablename ) ] ( loadstatement | selectstatement )

View solution in original post

11 Replies
Gysbert_Wassenaar

Use the concatenate keyword to force concatenation of the data to an existing table:

Table1:

LOAD * FROM ...somewhere...;

concatenate(Table1)

LOAD * FROM ...somewhere_else...;

etc...


talk is cheap, supply exceeds demand
PrashantSangle

Hi,

You can also try with

Outer Join

like,

LOAD * FROM ...table1...;

Join

LOAD * FROM ...table2...;

etc...

Regards

Great dreamer's dreams never fulfilled, they are always transcended.
Please appreciate our Qlik community members by giving Kudos for sharing their time for your query. If your query is answered, please mark the topic as resolved 🙂
Eugeny_Ilyin
Creator II
Creator II

День добрый.
Используй связку через Concatenate.

Если для двух таблиц необходимо выполнить связывание и они имеют разные наборы Поля, Связывание двух таблиц может быть выполнено принудительно с помощью префикса Concatenate. Этот оператор выполняет принудительное связывание с существующей именованной таблицей или последней созданной таблицей Логическая таблица. Принцип связывания аналогичен действию оператора SQL UNION с двумя отличиями: во-первых префикс Concatenate можно использовать независимо от того, имеют ли таблицы идентичные имена полей или нет; во-вторых удаление идентичных записей не выполняется.

Синтаксис имеет следующий вид:

concatenate[ (tablename ) ] ( loadstatement | selectstatement )

Not applicable
Author

Евгений, спасибо за ответ.

Но что-то не работает.

Это не "первичные таблицы", а вторичные или даже третичные.

То есть я вначале загрузил информацию из нескольких фалов, т.е. получил логические таблицы 1, 2, 3 и т.д.)

Затем всяко надругался над этими таблицами (вертел, добавлял и удалял лишние столбцы и т.д.), получил таблицы 1а, 2а, 3а и т.д. При этом предыдущие выкинул с помощью Unconcantante.

После чего взял нужные поля и постарался свести все в одну таблицу: 1б, 2б, 3б. Эти конечные таблицы и представлены на скриншоте. То есть они получены не напрямую из файлов, а посредством редактирования логических таблиц.

Я пишу скрипт:

End_table:

LOAD

    Месяц,

    Year,

    [Переработка нефти/газа],

    Показатели

Resident шаблон;

DROP Table Шаблон;

Concatenate (Setup)

LOAD

    Месяц,

    Year,

    [Переработка нефти/газа],

    Показатели

Resident Шаблон-1;

DROP Table Шаблон-1;

Мне выдается сообщение:

Таблица не найдена

Concatenate (End_table)

LOAD

  Месяц,

  Year,

  [Переработка нефти/газа],

  Показатели

Resident Шаблон-1

Eugeny_Ilyin
Creator II
Creator II

Дмитрий, все описанные действия в одном скрипте?

Почему бы не использовать промежуточную выгрузку в QVD формат?

Потом очистить память от ненужных таблиц и загрузиться в чистую среду.

Not applicable
Author

А стоп. Ошибся.

Я там в скрипте когда собирал из больших таблиц уже использовал параметр NoConcentente.

Изменил на Concentante - все заработало.

Спасибо.

Eugeny_Ilyin
Creator II
Creator II

И тем не менее.
Удобнее с выводом в QVD-формат. И скрипт понятнее и память не грузит лишнего.

Not applicable
Author

А разве память не освобождается, когда я выкидываю таблицу (drop table)?

Eugeny_Ilyin
Creator II
Creator II

Если грузить из резидента то пока не удалишь источник.