SQL запросы в мапинфо
-
- Новоприбывший
- Сообщения: 2
- Зарегистрирован: 30 сен 2014, 17:00
- Репутация: 0
SQL запросы в мапинфо
Господа, нужна помощь.
Есть четыре таблицы, назовем их 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
Мапинфо считает не правильным по причине не согласования таблиц. ЧЯДНТ?
Заранее спасибо.
Есть четыре таблицы, назовем их 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
Мапинфо считает не правильным по причине не согласования таблиц. ЧЯДНТ?
Заранее спасибо.
- Игорь Белов
- Гуру
- Сообщения: 2231
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1504
- Откуда: Казань
Re: SQL запросы в мапинфо
Если я правильно помню, MapInfo не принимает в Join больше двух таблиц. Объединять несколько таблиц можно только последовательно, попарно.
В общем, придётся создать временную таблицу p12 как Append p1 + p2 и сделать первую выборку точек. Повторить независимо для p1 + p3.
В общем, придётся создать временную таблицу p12 как Append p1 + p2 и сделать первую выборку точек. Повторить независимо для p1 + p3.
The purpose of computing is insight, not numbers
- ginpetr
- Завсегдатай
- Сообщения: 379
- Зарегистрирован: 21 июн 2011, 12:07
- Репутация: 140
- Откуда: Орск
- Контактная информация:
Re: SQL запросы в мапинфо
Обновить колонку таблицы t1 добавить временную колонку из таблицы p1 значение из колонки id (я понимаю, что они не нулевые) объединение по пересечению. И также для p2, p3. Выбрать из t1 записи укоторых все три временных колонки не равны нулю. Можно ещё пофантазировать с обновлением колонки, но принцип такой. Это если с напрямую запросом не получится...
-
- Новоприбывший
- Сообщения: 2
- Зарегистрирован: 30 сен 2014, 17:00
- Репутация: 0
Re: SQL запросы в мапинфо
Спасибо, я поняла.
Жалко, конечно.
Жалко, конечно.
-
- Новоприбывший
- Сообщения: 10
- Зарегистрирован: 24 апр 2018, 20:13
- Репутация: 0
- Откуда: челябинск
Re: SQL запросы в мапинфо
Добрый вечер, нужна помощь. Ситуация. Есть таблица с 56000 точек, имеется семантическая база, id - содержит порядковые номера. Подскажите как можно составить запрос, чтобы из этого количества точек выбрать только те, которые кратны 100 (например 100,200.... 51100, 51200)
-
- Гуру
- Сообщения: 5292
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: SQL запросы в мапинфо
wher id like '%00'
-
- Новоприбывший
- Сообщения: 10
- Зарегистрирован: 24 апр 2018, 20:13
- Репутация: 0
- Откуда: челябинск
Re: SQL запросы в мапинфо
trir, чего то у меня не получается, говорит переменная wherе - не определена((
- Игорь Белов
- Гуру
- Сообщения: 2231
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1504
- Откуда: Казань
Re: SQL запросы в мапинфо
Код: Выделить всё
Select * From MyBigTable Where id = Int( id / 100 ) * 100
- Вложения
-
- img_20180424_210135.png (4.09 КБ) 9579 просмотров
The purpose of computing is insight, not numbers
-
- Гуру
- Сообщения: 1195
- Зарегистрирован: 23 апр 2011, 10:32
- Репутация: 205
- Откуда: Ульяновск
Re: SQL запросы в мапинфо
Или
Код: Выделить всё
id % 100 = 0
- Игорь Белов
- Гуру
- Сообщения: 2231
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1504
- Откуда: Казань
Re: SQL запросы в мапинфо
Ребята, это же MapInfo. От SQL там одно название.
придётся заменить аналогом substr():
Аналога оператору % нет, заменяем "id % 100" остатком от вычитания целого числа сотен:
Код: Выделить всё
id like '%00'
Код: Выделить всё
Right$( Str$( id ) , 2 ) = "00"
Код: Выделить всё
id % 100 = 0
Код: Выделить всё
id = Int( id / 100 ) * 100
The purpose of computing is insight, not numbers
-
- Новоприбывший
- Сообщения: 10
- Зарегистрирован: 24 апр 2018, 20:13
- Репутация: 0
- Откуда: челябинск
Re: SQL запросы в мапинфо
Огромное спасибо всем!!!!!! Получилось вот так - Right$( Str$( id ) , 2 ) = "00" - остальное пока не попробовала!!!!! Выручили
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 39 гостей