Страница 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 КБ) 29174 просмотра
 
Замедления - не почувствовал.
 
			
					
				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