MapInfo и SQL
-
- Новоприбывший
- Сообщения: 13
- Зарегистрирован: 14 окт 2010, 23:16
- Репутация: 1
MapInfo и SQL
Привет.
проблема в следующем: есть два слоя, один - точечные обьекты, другой-полигональные.
нужно найти все полигональные обьекты, которые пересекают минимум два точечные.
как это сделать? спасибо.
проблема в следующем: есть два слоя, один - точечные обьекты, другой-полигональные.
нужно найти все полигональные обьекты, которые пересекают минимум два точечные.
как это сделать? спасибо.
- dab
- Гуру
- Сообщения: 671
- Зарегистрирован: 16 дек 2011, 20:02
- Репутация: 170
- Ваше звание: Гуру
- Откуда: Москва
- Контактная информация:
Re: MapInfo и SQL
Если есть первичный ключ (поле с уникальным значением для каждой строки) в обеих таблицах (в данном коде id), тогда можно парой запросов получить результат:
Если первичного ключа нет - можно добавить
Код: Выделить всё
Select tbl_polygone.id, Count(*) from tbl_point, tbl_polygone where tbl_point.Obj Within tbl_polygone.Obj group by 1 into qTemp
Select * from tbl_polygone, qTemp where tbl_polygone.id=qTemp.id and qTemp.COL2>1 into Selection

Код: Выделить всё
Alter Table "tbl_point" ( add id Integer ) Interactive
update tbl_point set id=rowid
Alter Table "tbl_polygone" ( add id Integer ) Interactive
update tbl_polygone set id=rowid
-
- Новоприбывший
- Сообщения: 13
- Зарегистрирован: 14 окт 2010, 23:16
- Репутация: 1
Re: MapInfo и SQL
спасибо большое, попробуем 

-
- Активный участник
- Сообщения: 120
- Зарегистрирован: 14 апр 2011, 13:24
- Репутация: 5
- Откуда: Екатеринбург
Re: MapInfo и SQL
добавьте только еще и третий запрос - непосредственно отбирающий нужные полигоны, все вместе получится вот так:
dab, если ничего не изменилось, то вот этот запрос не сработает (могу ошибиться):
Код: Выделить всё
Select tbl_polygone.id, Count(*) from tbl_point, tbl_polygone where tbl_point.Obj Within tbl_polygone.Obj group by 1 into qTemp1 noselect
Select * from qTemp1 where COL2>1 into qTemp2 noselect
Select * from tbl_polygone where id in (select col1 from qTemp2)
dab, если ничего не изменилось, то вот этот запрос не сработает (могу ошибиться):
мапинфошный sql не допускает (не допускал?) временные таблицы в подобного вида запросахSelect * from tbl_polygone, qTemp where tbl_polygone.id=qTemp.id and qTemp.COL2>1 into Selection
- dab
- Гуру
- Сообщения: 671
- Зарегистрирован: 16 дек 2011, 20:02
- Репутация: 170
- Ваше звание: Гуру
- Откуда: Москва
- Контактная информация:
Re: MapInfo и SQL
MapInfo 10.5 - работает. Прежде чем писать сообщение, сам проверял.SergS писал(а): ... dab, если ничего не изменилось, то вот этот запрос не сработает (могу ошибиться):мапинфошный sql не допускает (не допускал?) временные таблицы в подобного вида запросахSelect * from tbl_polygone, qTemp where tbl_polygone.id=qTemp.id and qTemp.COL2>1 into Selection

-
- Активный участник
- Сообщения: 120
- Зарегистрирован: 14 апр 2011, 13:24
- Репутация: 5
- Откуда: Екатеринбург
Re: MapInfo и SQL
ну, значит, я отстал...
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость