SQL запросы в мапинфо

Не знаете, где задать вопрос? Задавайте здесь.
Ответить
cskq
Новоприбывший
Сообщения: 2
Зарегистрирован: 30 сен 2014, 17:00
Репутация: 0

SQL запросы в мапинфо

Сообщение cskq » 30 сен 2014, 17:10

Господа, нужна помощь.
Есть четыре таблицы, назовем их t1, p1, p2 и p3.
Таблица t1 содержит точечные объекты, p1- p3 площадные.
Нужно выбрать все точечные объекты, которые попадают одновременно на объекты из p1 и p2 или на p1 и p3.
Банальное
SELECT t1.name, p1.id, p2.id, p3.id
FROM t1, p1, p2, p3
WHERE t1.obj within p1.obj AND t1.obj within p2.obj OR t1.obj within p1.obj AND t1.obj within p3.obj
Мапинфо считает не правильным по причине не согласования таблиц. ЧЯДНТ?
Заранее спасибо.

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

Re: SQL запросы в мапинфо

Сообщение Игорь Белов » 30 сен 2014, 18:48

Если я правильно помню, MapInfo не принимает в Join больше двух таблиц. Объединять несколько таблиц можно только последовательно, попарно.
В общем, придётся создать временную таблицу p12 как Append p1 + p2 и сделать первую выборку точек. Повторить независимо для p1 + p3.
The purpose of computing is insight, not numbers

Аватара пользователя
ginpetr
Завсегдатай
Сообщения: 374
Зарегистрирован: 21 июн 2011, 12:07
Репутация: 139
Откуда: Орск
Контактная информация:

Re: SQL запросы в мапинфо

Сообщение ginpetr » 30 сен 2014, 20:10

Обновить колонку таблицы t1 добавить временную колонку из таблицы p1 значение из колонки id (я понимаю, что они не нулевые) объединение по пересечению. И также для p2, p3. Выбрать из t1 записи укоторых все три временных колонки не равны нулю. Можно ещё пофантазировать с обновлением колонки, но принцип такой. Это если с напрямую запросом не получится...

cskq
Новоприбывший
Сообщения: 2
Зарегистрирован: 30 сен 2014, 17:00
Репутация: 0

Re: SQL запросы в мапинфо

Сообщение cskq » 01 окт 2014, 09:47

Спасибо, я поняла.
Жалко, конечно.

Екатерина2016
Новоприбывший
Сообщения: 10
Зарегистрирован: 24 апр 2018, 20:13
Репутация: 0
Откуда: челябинск

Re: SQL запросы в мапинфо

Сообщение Екатерина2016 » 24 апр 2018, 20:30

Добрый вечер, нужна помощь. Ситуация. Есть таблица с 56000 точек, имеется семантическая база, id - содержит порядковые номера. Подскажите как можно составить запрос, чтобы из этого количества точек выбрать только те, которые кратны 100 (например 100,200.... 51100, 51200)

trir
Гуру
Сообщения: 5278
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1014
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: SQL запросы в мапинфо

Сообщение trir » 24 апр 2018, 20:36

wher id like '%00'

Екатерина2016
Новоприбывший
Сообщения: 10
Зарегистрирован: 24 апр 2018, 20:13
Репутация: 0
Откуда: челябинск

Re: SQL запросы в мапинфо

Сообщение Екатерина2016 » 24 апр 2018, 20:46

trir, чего то у меня не получается, говорит переменная wherе - не определена((

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

Re: SQL запросы в мапинфо

Сообщение Игорь Белов » 24 апр 2018, 21:08

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

Select * From MyBigTable Where id = Int( id / 100 ) * 100
Вложения
img_20180424_210135.png
img_20180424_210135.png (4.09 КБ) 9493 просмотра
The purpose of computing is insight, not numbers

freeExec
Гуру
Сообщения: 1195
Зарегистрирован: 23 апр 2011, 10:32
Репутация: 205
Откуда: Ульяновск

Re: SQL запросы в мапинфо

Сообщение freeExec » 24 апр 2018, 21:13

Или

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

id % 100 = 0

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

Re: SQL запросы в мапинфо

Сообщение Игорь Белов » 24 апр 2018, 21:24

Ребята, это же MapInfo. От SQL там одно название.

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

id like '%00'
придётся заменить аналогом substr():

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

Right$( Str$( id ) , 2 ) = "00"

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

id % 100 = 0
Аналога оператору % нет, заменяем "id % 100" остатком от вычитания целого числа сотен:

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

id = Int( id / 100 ) * 100
The purpose of computing is insight, not numbers

Екатерина2016
Новоприбывший
Сообщения: 10
Зарегистрирован: 24 апр 2018, 20:13
Репутация: 0
Откуда: челябинск

Re: SQL запросы в мапинфо

Сообщение Екатерина2016 » 25 апр 2018, 06:22

Огромное спасибо всем!!!!!! Получилось вот так - Right$( Str$( id ) , 2 ) = "00" - остальное пока не попробовала!!!!! Выручили :D

Ответить

Вернуться в «Я новичок!»

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

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