помогите составить запрос

MapInfo, MapBasic
Ответить
kid
Новоприбывший
Сообщения: 4
Зарегистрирован: 17 май 2012, 11:41
Репутация: 0

помогите составить запрос

Сообщение kid » 17 май 2012, 11:47

суть проблемы такова :
Имеется карта покрытия , представляет она из себя много наложенных друг на друга полигонов .
Самый нижний на всю площадь , каждый следующий слой немного меньше предыдущего. Каждый слой имеет значение уровня .

Имеется маршрут из точек.
Требуется составить запрос : В новую таблицу перенести значение максимального уровня из слоя покрытия для каждой точки маршрута .

Пробовал составлять SQL запросы выборки , в новую таблицу переносились все значения слоев покрытия от минимального до максимального в этой точке . То есть на одну точку маршрута - несколько строк в новой таблице .
Как надо изменить запрос что бы новая таблица содержала только максимальное значение покрытия для каждой точки маршрута.

спс

Аватара пользователя
Пётр Дубоделов
Завсегдатай
Сообщения: 271
Зарегистрирован: 21 апр 2009, 13:58
Репутация: 12
Откуда: Бурашево
Контактная информация:

Re: помогите составить запрос

Сообщение Пётр Дубоделов » 17 май 2012, 13:43

Могу посоветовать не в Мапинфо, Без SQL:
в Global Mapper постройте по вашим данным ЦМР и применить высоты слоёв топографии к вашим точкам.
Все делается буквально в пару кликов, при условии что атрибуты уровенных поверхностей заданы корректно.

Вас ведь фактически высоты стояния интересуют?
Если так, расскажу подробнее как все сделать.
Последний раз редактировалось Пётр Дубоделов 17 май 2012, 13:45, всего редактировалось 1 раз.
"Если карта не соответствует местности, доверяй местности."

reasonat
Завсегдатай
Сообщения: 257
Зарегистрирован: 10 июн 2009, 12:21
Репутация: 0
Откуда: Екатеринбург
Контактная информация:

Re: помогите составить запрос

Сообщение reasonat » 17 май 2012, 13:44

почти не поняла. а запрос из слоя точек маршрута и слоя с максимальным уровнем можно составить? или максимальный уровень для разных точек может оказаться в разных слоях?

Аватара пользователя
Игорь Белов
Гуру
Сообщения: 2241
Зарегистрирован: 04 янв 2011, 22:00
Репутация: 1514
Откуда: Казань

Re: помогите составить запрос

Сообщение Игорь Белов » 17 май 2012, 15:00

Вам нужно использовать группирование по имени точки, чтобы запрос выдал её только один раз. Чтобы узнать максимальный уровень, выведите колонку Max(уровень).
Обязательно выведите колонки координат, поскольку при группировании выводятся не объекты, а только записи.
Вложения
Query1.png
Query1.png (5.65 КБ) 8718 просмотров
The purpose of computing is insight, not numbers

kid
Новоприбывший
Сообщения: 4
Зарегистрирован: 17 май 2012, 11:41
Репутация: 0

Re: помогите составить запрос

Сообщение kid » 17 май 2012, 15:46

Вам нужно использовать группирование по имени точки, чтобы запрос выдал её только один раз. Чтобы узнать максимальный уровень, выведите колонку Max(уровень).
Обязательно выведите колонки координат, поскольку при группировании выводятся не объекты, а только записи.
Спасибо за ответ.
Но используя ваш запрос в результате выходит всего одна строка

Аватара пользователя
Игорь Белов
Гуру
Сообщения: 2241
Зарегистрирован: 04 янв 2011, 22:00
Репутация: 1514
Откуда: Казань

Re: помогите составить запрос

Сообщение Игорь Белов » 17 май 2012, 16:49

Для группирования следует использовать поле, содержащее уникальный для каждой точки идентификатор. Однако можно использовать и другую комбинацию данных, однозначно определяющих точку. Отлично подойдут пары координат:

Код: Выделить всё

маршрут.Lon, маршрут.Lat
The purpose of computing is insight, not numbers

kid
Новоприбывший
Сообщения: 4
Зарегистрирован: 17 май 2012, 11:41
Репутация: 0

Re: помогите составить запрос

Сообщение kid » 17 май 2012, 17:41

ErnieBoyd писал(а):Для группирования следует использовать поле, содержащее уникальный для каждой точки идентификатор. Однако можно использовать и другую комбинацию данных, однозначно определяющих точку. Отлично подойдут пары координат:

Код: Выделить всё

маршрут.Lon, маршрут.Lat
Все равно одна строка.
Поясню еще раз.
Слой покрытия по сути несколько полигонов лежащих друг на друге , в описании к полигонам уровень.
Маршрут - просто точки с координатами .

Попробовал группировать даже по уникальному номеру строки в маршруте, все равно в итоге всего одна строка

kid
Новоприбывший
Сообщения: 4
Зарегистрирован: 17 май 2012, 11:41
Репутация: 0

Re: помогите составить запрос

Сообщение kid » 17 май 2012, 17:54

kid писал(а):
ErnieBoyd писал(а):Для группирования следует использовать поле, содержащее уникальный для каждой точки идентификатор. Однако можно использовать и другую комбинацию данных, однозначно определяющих точку. Отлично подойдут пары координат:

Код: Выделить всё

маршрут.Lon, маршрут.Lat
Все равно одна строка.
Поясню еще раз.
Слой покрытия по сути несколько полигонов лежащих друг на друге , в описании к полигонам уровень.
Маршрут - просто точки с координатами .

Попробовал группировать даже по уникальному номеру строки в маршруте, все равно в итоге всего одна строка
Всем спасибо за помощь . Победил.

Аватара пользователя
Филиппов Владислав
Гуру
Сообщения: 1035
Зарегистрирован: 17 фев 2006, 06:28
Репутация: 144
Ваше звание: Геннадич
Откуда: Новосибирск
Контактная информация:

Re: помогите составить запрос

Сообщение Филиппов Владислав » 18 май 2012, 05:40

Слой покрытия
не знал что MapInfo работает с покрытиями

Petruxin
Гуру
Сообщения: 1695
Зарегистрирован: 14 июн 2011, 16:47
Репутация: 133
Ваше звание: Завсегдатай
Откуда: Череповец

Re: помогите составить запрос

Сообщение Petruxin » 18 май 2012, 05:58

kid писал
Всем спасибо за помощь . Победил.
Поделитесь каким образом решен вопрос..
Ну и закройте тему поставив галочки на первое сообщение ..

SergS
Активный участник
Сообщения: 120
Зарегистрирован: 14 апр 2011, 13:24
Репутация: 5
Откуда: Екатеринбург

Re: помогите составить запрос

Сообщение SergS » 18 май 2012, 06:12

nukevlad писал(а):
Слой покрытия
не знал что MapInfo работает с покрытиями
В Вашем недоумении присутствуют сразу два неразрешенных (в вашем утверждении неразрешенных, из контекста вроде бы все понятно) терминологических вопроса :D :
- что есть покрытие...
- что есть работа... (с покрытиями)
:D

Ответить

Вернуться в «MapInfo»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя