Страница 1 из 2
как объединить несколько одинаковых таблиц в одну?
Добавлено: 25 фев 2009, 11:59
Braz
Исходный материал:
папка (1 планшет), в ней десяток таблиц (с именами, согласно классификатору), и таких папок куча штук (с такими же именами таблиц)
Цель:
получить одну папку (общий массив) с таблицами согласно классификатору
________________________________________________________________________________________
Как можно реализовать слияние(или может как-то другим словом это назвать) из кучи таблиц с одинаковыми именами в одну общую? В мапинфо есть такие средства?
А то переименовывать предлагает, и рабочий набор выглядит лучше с 10-ю таблицами, нежели с 10 0000.
Re: как объединить несколько одинаковых таблиц в одну?
Добавлено: 25 фев 2009, 14:44
SS_Rebelious
Для решения проблемы одинаковых имён большого числа таблиц, советую воспользоваться бесплатной утилитой LupasRename и быстренько массово переименовать таблички, чтобы мапинфо не ругалась на одинаковые названия.
Затем открыть открыть таблицы, которые требуется объединить и воспользоваться вкладкой Таблица->Добавить записи в таблицу.
Удачи!
Re: как объединить несколько одинаковых таблиц в одну?
Добавлено: 25 фев 2009, 21:00
Cancer
Попробуйте пакет "Инструментарий для MapInfo", там есть инструмент Слияние таблиц.
http://www.map-info.ru
Re: как объединить несколько одинаковых таблиц в одну?
Добавлено: 27 фев 2009, 04:24
Boris
А вы бы привели пример. В чем собственно состоит задача?
Все таблицы "лес" в папках 0001 - 9999 объединить в одну таблицу "лес"?
Если так, то в MapInfo такое средство уже встроено оно называется "Добавить записи в таблицу" ("Append Rows to table"). Или вернее команда окна MapBasic - Insert ...
Вот пример из Help'а MapBasic'а
Accordingly, the Insert statement below appends all of the records from the New Jersey table into the New York table.
Insert Into NY_ZIPS
Select * From NJ_ZIPS
Если структура ваших таблиц "лес" всегда совпадает, то все что вам нужно - это породить текстовый список следующего состава (пусть принимающая (обобщающая) таблица, называется "les0" и лежит в каталоге 0000, а все остальные имеют имя "лес" и лежат в каталогах 0001-9999:
open table ".\0000\les0" as les0
[далее в цикле по всем папкам]
open table ".\0001\лес.tab" as les
Insert Into les0 Select * From les
Rename Table les As "лес_.tab" ' эта строчка избыточна, но она позволяет отследить таблицу, которая была последней добавлена
close table лес_
Commit Table les0
[... переход к следующему каталогу и файлу]
Все сгенерированное сохранить в обычный текстовый файл.
Открыть MapInfo. Открыть окно MapBasic. Вставить туда этот текст. Командой Ctrl+A выделить все строчки.
Нажать ввод. Наслаждаться автономной работой (и надеяться, что 10000 таблиц не переполнят одну

)
Как закончит все мигать на экране, останется одна открытая таблица les0, она и будет содержать все исходные таблицы.
Re: как объединить несколько одинаковых таблиц в одну?
Добавлено: 27 фев 2009, 21:00
Cancer
Добавлю ложку дегтя в теоретические выкладки - после открытия 200 таблиц в Mapinfo (даже не одновременно, а поочереди) - MapInfo поплохеет, она свалится с ошибкой.
Re: как объединить несколько одинаковых таблиц в одну?
Добавлено: 27 фев 2009, 22:12
Braz
Boris-y почет!
Re: как объединить несколько одинаковых таблиц в одну?
Добавлено: 01 мар 2009, 00:55
Boris
Cancer писал(а):Добавлю ложку дегтя в теоретические выкладки - после открытия 200 таблиц в Mapinfo (даже не одновременно, а поочереди) - MapInfo поплохеет, она свалится с ошибкой.
Я проверил. У меня - не поплохело.
Взял покрытие Московской области съемкой IRS P6. 133 контура в SHP-Файле.
1. сгенерировал команду "Save Copy As..." - 250 раз. Вставил в окно MapBasic. Запустил. Сохранилось без вопросов.
2. Открыл все 250 новых таблиц одновременно. Открылись и показались в окне. Практически без замедления.
3. закрыл все таблицы.
4. создал пустую таблицу в теми же полями.
5. как писал выше, в цикле открыл все 250 таблиц. В смысле, открыл-добавил к таблице"накопителю"-закрыл таблицу-сохранил таблицу-"накопитель". Отработало как и писал через текстовый файл в окно MapBasic.
Показало вот такой результат:

- Clipboard01.jpg (180.17 КБ) 28742 просмотра
Замедления - не почувствовал.
Re: как объединить несколько одинаковых таблиц в одну?
Добавлено: 13 мар 2009, 10:13
fati
ребята, подскажите пожалуйста, у меня вопрос тоже по обьединению таблиц, только не одинаковых, а разных.
Есть 4 разных таблицы по оборудованию,но у них есть столбцы с одинаковым названием (тип, собственность, участок), мне необходимо во всех таблицах по общим столбцам выбрать записи которые относятся к участку№ и поместить их в общую таблицу, с этими столбцами (тип, собственность, участок).
Делала выборку по каждой таблице необходимых столбцов, потом сливала в общую, выдает сообщение об ошибке "Преобразовать данные не удалось".
Типа такого
Select Тип, Собственность, Участок from Оборудование1
where Участок=num
into t1
Select Тип, Собственность, Участок from Оборудование2
where Учаток=num
into t2
insert into t1
select * from t2
Select Тип, Собственность, Участок from Оборудование3
where Участок=num
into t3
insert into t1
select * from t3
С помощью sql-запроса не получаеться, потому что оно вместо того что б добавлять новые строки- добавляет столбцы! Пожалуйста,подскажите как обьеденить такие таблицы?
Re: как объединить несколько одинаковых таблиц в одну?
Добавлено: 13 мар 2009, 13:09
Boris
Странно, это как-то все у меня аналогичные команды работают. Select-Insert
В том числе и для таблиц с различающейся структурой.
Другое дело, что это в принципе не правильно, вы в 1-ую таблицу вставляете записи из других таблиц. Тем самым разрушаете свои исходные данные.
Сам mapInfo в этом гораздо последовательней - он не дает через команду "Append Rows to Table" добавлять записи к запросу.
Стандартно объединение однородных данных в запрос выполняется SQL командой UNION, но MapInfo SQL не содержит этой команды. Так что объединение в запросы - невозможно. Можно только создавать физическое объединение данных в новых таблицах последовательностью команд Select-Insert.
Еще раз скажу, у меня в 9.0, приведенный текст, естественно на своих данных, отработал как и написано. Без всяких сбоев и добавил новые строки с пустыми столбцами там, где данных не было в добавляемом запросе.
Re: как объединить несколько одинаковых таблиц в одну?
Добавлено: 13 мар 2009, 17:00
fati
да, действительно, это из-за того что не хочет добавлять строки в таблицу предыдущей выборки... В обычную таблицу добавляет строки без проблем!а так хотелось обойтись временной таблицей...
Спасибо большое , Boris, за подсказку!!!
Re: как объединить несколько одинаковых таблиц в одну?
Добавлено: 29 дек 2017, 12:07
ivan_1965
Надо объединить много таблиц в одну. Ничего не изменилось?
Re: как объединить несколько одинаковых таблиц в одну?
Добавлено: 07 июн 2019, 10:00
long29
Добрый день. Помогите объединить тысячи слоев. Передали земельные участки - 1 ЗУ это 1 слой. Как их пакетно слить в один слой? Заранее спасибо.
Re: как объединить несколько одинаковых таблиц в одну?
Добавлено: 07 июн 2019, 10:18
trir
ogr
Re: как объединить несколько одинаковых таблиц в одну?
Добавлено: 07 июн 2019, 10:25
long29
Можно пошагово. Сложно у меня с програмированием.
Re: как объединить несколько одинаковых таблиц в одну?
Добавлено: 07 июн 2019, 10:32
trir