www.map-info.ru :: Просмотр темы - проблема с SQL запросом
                               РќР° главную страницу сайта

 
                                
ВходВход    РегистрацияРегистрация    ПрофильПрофиль    ПользователиПользователи    ГруппыГруппы    FAQFAQ    ПоискПоиск  

 
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Предыдущая тема :: Следующая тема  
Автор Сообщение
Владимир



Зарегистрирован: 24.01.2007
Сообщения: 4

СообщениеДобавлено: Ср Янв 24, 2007 12:18 pm    Заголовок сообщения: проблема с SQL запросом Добавить ответ со ссылкой на данный текст

Сама проблема:
имеется две таблицы t1 и t2 с одинаково названными полями id целого типа, в таблицах полилинии. Id сгруппированы по возрастанию.

Имеется SQL запрос
Select t1.id,t1.obj from t1,t2 where t1.id <> t2.id into temp

MapInfo выдает ошибку: для таблиц t1 и t2 не задано условие объединения. Неправильно задано условие объединения в условном предложении WHERE

Причем если ставлю вместо <> знак = ,то запрос работает... Хелп.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Нестеров Валерий



Зарегистрирован: 21.03.2006
Сообщения: 492

СообщениеДобавлено: Чт Янв 25, 2007 8:33 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Действительно запрос
Select t1.id,t1.obj from t1,t2 where t1.id <> t2.id into temp
не работает... самое простое, это выполнить запрос
Select t1.id,t1.obj from t1,t2 where t1.id = t2.id into temp
а затем нажать кнопку (белая стрелка на черном фоне) "инверсия выборки"
_________________
Жизнь прекрасна!i
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Владимир



Зарегистрирован: 24.01.2007
Сообщения: 4

СообщениеДобавлено: Вт Янв 30, 2007 12:33 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

мне надо выполнить этот запрос в MapBasic, а функции invert я там не разглядел. Она что, выполняется только в MapInfo? :shock:
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Нестеров Валерий



Зарегистрирован: 21.03.2006
Сообщения: 492

СообщениеДобавлено: Ср Янв 31, 2007 9:55 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Иногда можно попробовать обходные пути:

Вначале во временную колонку "xxx" одной таблицы прописать "единички", в те строки, которые совпадают со второй таблицей вот так:
Add Column "t1" (xxx Integer) From t2 Set To 1 Where COL1 = COL1 Dynamic

где COL1 (левая) соответствует номеру колонки "id" в таблице "t1",
а COL1 (правая) соответствует номеру колонки "id" в таблице "t2"

А теперь выбрать то, что нужно вот так:
select * from t1 where xxx<>"1" into Selection

Можно сразу сделать в одной таблице постоянную колонку для таких вспомогательных прописок.

Повторяю, что это один из вариантов, который пришел в голову, может кто подскажет и попроще ))).
_________________
Жизнь прекрасна!i
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Владимир



Зарегистрирован: 24.01.2007
Сообщения: 4

СообщениеДобавлено: Чт Фев 01, 2007 2:47 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Спасибо.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Top.Mail.Ru