Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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?
День добрый.
Используй связку через Concatenate.
Если для двух таблиц необходимо выполнить связывание и они имеют разные наборы Поля, Связывание двух таблиц может быть выполнено принудительно с помощью префикса Concatenate. Этот оператор выполняет принудительное связывание с существующей именованной таблицей или последней созданной таблицей Логическая таблица. Принцип связывания аналогичен действию оператора SQL UNION с двумя отличиями: во-первых префикс Concatenate можно использовать независимо от того, имеют ли таблицы идентичные имена полей или нет; во-вторых удаление идентичных записей не выполняется.
Синтаксис имеет следующий вид:
concatenate[ (tablename ) ] ( loadstatement | selectstatement )
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...
Hi,
You can also try with
Outer Join
like,
LOAD * FROM ...table1...;
Join
LOAD * FROM ...table2...;
etc...
Regards
День добрый.
Используй связку через Concatenate.
Если для двух таблиц необходимо выполнить связывание и они имеют разные наборы Поля, Связывание двух таблиц может быть выполнено принудительно с помощью префикса Concatenate. Этот оператор выполняет принудительное связывание с существующей именованной таблицей или последней созданной таблицей Логическая таблица. Принцип связывания аналогичен действию оператора SQL UNION с двумя отличиями: во-первых префикс Concatenate можно использовать независимо от того, имеют ли таблицы идентичные имена полей или нет; во-вторых удаление идентичных записей не выполняется.
Синтаксис имеет следующий вид:
concatenate[ (tablename ) ] ( loadstatement | selectstatement )
Евгений, спасибо за ответ.
Но что-то не работает.
Это не "первичные таблицы", а вторичные или даже третичные.
То есть я вначале загрузил информацию из нескольких фалов, т.е. получил логические таблицы 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
Дмитрий, все описанные действия в одном скрипте?
Почему бы не использовать промежуточную выгрузку в QVD формат?
Потом очистить память от ненужных таблиц и загрузиться в чистую среду.
А стоп. Ошибся.
Я там в скрипте когда собирал из больших таблиц уже использовал параметр NoConcentente.
Изменил на Concentante - все заработало.
Спасибо.
И тем не менее.
Удобнее с выводом в QVD-формат. И скрипт понятнее и память не грузит лишнего.
А разве память не освобождается, когда я выкидываю таблицу (drop table)?
Если грузить из резидента то пока не удалишь источник.