как объединить несколько одинаковых таблиц в одну?
-
- Интересующийся
- Сообщения: 41
- Зарегистрирован: 12 янв 2009, 09:03
- Репутация: 0
как объединить несколько одинаковых таблиц в одну?
Исходный материал:
папка (1 планшет), в ней десяток таблиц (с именами, согласно классификатору), и таких папок куча штук (с такими же именами таблиц)
Цель:
получить одну папку (общий массив) с таблицами согласно классификатору
________________________________________________________________________________________
Как можно реализовать слияние(или может как-то другим словом это назвать) из кучи таблиц с одинаковыми именами в одну общую? В мапинфо есть такие средства?
А то переименовывать предлагает, и рабочий набор выглядит лучше с 10-ю таблицами, нежели с 10 0000.
папка (1 планшет), в ней десяток таблиц (с именами, согласно классификатору), и таких папок куча штук (с такими же именами таблиц)
Цель:
получить одну папку (общий массив) с таблицами согласно классификатору
________________________________________________________________________________________
Как можно реализовать слияние(или может как-то другим словом это назвать) из кучи таблиц с одинаковыми именами в одну общую? В мапинфо есть такие средства?
А то переименовывать предлагает, и рабочий набор выглядит лучше с 10-ю таблицами, нежели с 10 0000.
- SS_Rebelious
- Гуру
- Сообщения: 1304
- Зарегистрирован: 24 фев 2009, 16:51
- Репутация: 99
- Ваше звание: GIS pro-fan
- Откуда: Lahti / Газ-ПУТИНбург
- Контактная информация:
Re: как объединить несколько одинаковых таблиц в одну?
Для решения проблемы одинаковых имён большого числа таблиц, советую воспользоваться бесплатной утилитой LupasRename и быстренько массово переименовать таблички, чтобы мапинфо не ругалась на одинаковые названия.
Затем открыть открыть таблицы, которые требуется объединить и воспользоваться вкладкой Таблица->Добавить записи в таблицу.
Удачи!
Затем открыть открыть таблицы, которые требуется объединить и воспользоваться вкладкой Таблица->Добавить записи в таблицу.
Удачи!
Look for something long enough, and you will find it. Look for something without understanding, and it will find you...
"All paid jobs absorb and degrade the mind." Aristotle
If you take 1 step towards freedom it'll take 2 steps towards you!
"All paid jobs absorb and degrade the mind." Aristotle
If you take 1 step towards freedom it'll take 2 steps towards you!
-
- Участник
- Сообщения: 56
- Зарегистрирован: 25 фев 2009, 20:55
- Репутация: 3
- Откуда: Инструментарий для MapInfo
- Контактная информация:
Re: как объединить несколько одинаковых таблиц в одну?
Попробуйте пакет "Инструментарий для MapInfo", там есть инструмент Слияние таблиц.
http://www.map-info.ru
http://www.map-info.ru
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: как объединить несколько одинаковых таблиц в одну?
А вы бы привели пример. В чем собственно состоит задача?
Все таблицы "лес" в папках 0001 - 9999 объединить в одну таблицу "лес"?
Если так, то в MapInfo такое средство уже встроено оно называется "Добавить записи в таблицу" ("Append Rows to table"). Или вернее команда окна MapBasic - Insert ...
Вот пример из Help'а MapBasic'а
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, она и будет содержать все исходные таблицы.
Все таблицы "лес" в папках 0001 - 9999 объединить в одну таблицу "лес"?
Если так, то в MapInfo такое средство уже встроено оно называется "Добавить записи в таблицу" ("Append Rows to table"). Или вернее команда окна MapBasic - Insert ...
Вот пример из Help'а MapBasic'а
Если структура ваших таблиц "лес" всегда совпадает, то все что вам нужно - это породить текстовый список следующего состава (пусть принимающая (обобщающая) таблица, называется "les0" и лежит в каталоге 0000, а все остальные имеют имя "лес" и лежат в каталогах 0001-9999: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
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, она и будет содержать все исходные таблицы.
-
- Участник
- Сообщения: 56
- Зарегистрирован: 25 фев 2009, 20:55
- Репутация: 3
- Откуда: Инструментарий для MapInfo
- Контактная информация:
Re: как объединить несколько одинаковых таблиц в одну?
Добавлю ложку дегтя в теоретические выкладки - после открытия 200 таблиц в Mapinfo (даже не одновременно, а поочереди) - MapInfo поплохеет, она свалится с ошибкой.
-
- Интересующийся
- Сообщения: 41
- Зарегистрирован: 12 янв 2009, 09:03
- Репутация: 0
Re: как объединить несколько одинаковых таблиц в одну?
Boris-y почет!
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: как объединить несколько одинаковых таблиц в одну?
Я проверил. У меня - не поплохело.Cancer писал(а):Добавлю ложку дегтя в теоретические выкладки - после открытия 200 таблиц в Mapinfo (даже не одновременно, а поочереди) - MapInfo поплохеет, она свалится с ошибкой.
Взял покрытие Московской области съемкой IRS P6. 133 контура в SHP-Файле.
1. сгенерировал команду "Save Copy As..." - 250 раз. Вставил в окно MapBasic. Запустил. Сохранилось без вопросов.
2. Открыл все 250 новых таблиц одновременно. Открылись и показались в окне. Практически без замедления.
3. закрыл все таблицы.
4. создал пустую таблицу в теми же полями.
5. как писал выше, в цикле открыл все 250 таблиц. В смысле, открыл-добавил к таблице"накопителю"-закрыл таблицу-сохранил таблицу-"накопитель". Отработало как и писал через текстовый файл в окно MapBasic.
Показало вот такой результат: Замедления - не почувствовал.
-
- Интересующийся
- Сообщения: 22
- Зарегистрирован: 13 мар 2009, 10:06
- Репутация: 0
Re: как объединить несколько одинаковых таблиц в одну?
ребята, подскажите пожалуйста, у меня вопрос тоже по обьединению таблиц, только не одинаковых, а разных.
Есть 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-запроса не получаеться, потому что оно вместо того что б добавлять новые строки- добавляет столбцы! Пожалуйста,подскажите как обьеденить такие таблицы?
Есть 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-запроса не получаеться, потому что оно вместо того что б добавлять новые строки- добавляет столбцы! Пожалуйста,подскажите как обьеденить такие таблицы?
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: как объединить несколько одинаковых таблиц в одну?
Странно, это как-то все у меня аналогичные команды работают. Select-Insert
В том числе и для таблиц с различающейся структурой.
Другое дело, что это в принципе не правильно, вы в 1-ую таблицу вставляете записи из других таблиц. Тем самым разрушаете свои исходные данные.
Сам mapInfo в этом гораздо последовательней - он не дает через команду "Append Rows to Table" добавлять записи к запросу.
Стандартно объединение однородных данных в запрос выполняется SQL командой UNION, но MapInfo SQL не содержит этой команды. Так что объединение в запросы - невозможно. Можно только создавать физическое объединение данных в новых таблицах последовательностью команд Select-Insert.
Еще раз скажу, у меня в 9.0, приведенный текст, естественно на своих данных, отработал как и написано. Без всяких сбоев и добавил новые строки с пустыми столбцами там, где данных не было в добавляемом запросе.
В том числе и для таблиц с различающейся структурой.
Другое дело, что это в принципе не правильно, вы в 1-ую таблицу вставляете записи из других таблиц. Тем самым разрушаете свои исходные данные.
Сам mapInfo в этом гораздо последовательней - он не дает через команду "Append Rows to Table" добавлять записи к запросу.
Стандартно объединение однородных данных в запрос выполняется SQL командой UNION, но MapInfo SQL не содержит этой команды. Так что объединение в запросы - невозможно. Можно только создавать физическое объединение данных в новых таблицах последовательностью команд Select-Insert.
Еще раз скажу, у меня в 9.0, приведенный текст, естественно на своих данных, отработал как и написано. Без всяких сбоев и добавил новые строки с пустыми столбцами там, где данных не было в добавляемом запросе.
-
- Интересующийся
- Сообщения: 22
- Зарегистрирован: 13 мар 2009, 10:06
- Репутация: 0
Re: как объединить несколько одинаковых таблиц в одну?
да, действительно, это из-за того что не хочет добавлять строки в таблицу предыдущей выборки... В обычную таблицу добавляет строки без проблем!а так хотелось обойтись временной таблицей...
Спасибо большое , Boris, за подсказку!!!
Спасибо большое , Boris, за подсказку!!!
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 28 дек 2017, 09:36
- Репутация: 1
- Откуда: Екатеринбург
Re: как объединить несколько одинаковых таблиц в одну?
Надо объединить много таблиц в одну. Ничего не изменилось?
-
- Новоприбывший
- Сообщения: 10
- Зарегистрирован: 19 сен 2018, 10:31
- Репутация: 0
- Откуда: Arh
Re: как объединить несколько одинаковых таблиц в одну?
Добрый день. Помогите объединить тысячи слоев. Передали земельные участки - 1 ЗУ это 1 слой. Как их пакетно слить в один слой? Заранее спасибо.
-
- Гуру
- Сообщения: 5298
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
-
- Новоприбывший
- Сообщения: 10
- Зарегистрирован: 19 сен 2018, 10:31
- Репутация: 0
- Откуда: Arh
Re: как объединить несколько одинаковых таблиц в одну?
Можно пошагово. Сложно у меня с програмированием.
-
- Гуру
- Сообщения: 5298
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость