![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 21.03.2010
Сообщений: 12
|
![]()
Доброго времени суток.
Столкнулся с непониманием работы оператора NOT IN. Итак Sybase, Transact SQL. Тип данных number - numeric(15,0) Допустим у нас есть таблицы: 1) tFirstTable ============== id | number | info | ============== 2) tSecondTable ============ | number | ============ 3) tFirdTable ============ | id | date | ============ Следующий запрос заносит во временную таблицу все из первой таблицы, при совпадении number из первой и второй таблицы. Код:
Допустим необходимо занести во временную таблицу все записи из первой таблицы, кроме тех, для которых ts.number = tf.number. 1) Допустим записей мало, и их можно просто перечислить списком: Код:
2) Пробовал через селект второй таблицы: Код:
3) Пробовал через "and" по одной записи. Код:
В чем причина? Последний раз редактировалось Stilet; 22.10.2011 в 21:27. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
А зачем tSecondTable есть во всех запросах и нигде во WHERE нет упоминания этой таблицы?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 21.03.2010
Сообщений: 12
|
![]()
Исправил.
В данной таблице хранится список number-ов, на схожесть/не схожесть с которыми я проверяю. В первом запросе я выводил те записи из first, которые совпадают с number из second. Во втором хотел вывести те, которые не совпадают, и воспользовался по-моему мнению корректным подзапросом select из данной таблицы и оператором Not in. Результат не удовлетворил. Далее пошел экспериментировать и вручную задавать number-ы и тоже ничего не получилось. В чем я допустил промах? |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
В запросе №2 tSecondTable ts (index tralalala), все равно лишний, а так визуально больше проблем не вижу. Все должно работать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
она же ни с кем не связана! и на будущее запомните, что все указанные во FROM таблицы должны быть связанны друг с другом! |
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 21.03.2010
Сообщений: 12
|
![]()
Благодарю, думаю из-за того, что я в 3 запросе, в from основного запроса внес tSecondTable он у меня не правильно отрабатывал.
Просто я тут маленький запрос привел для примера, на самом деле он гораздо больше, там штук 7 связей, видимо упустил. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
работа функциями "ЕСЛИ", "И" и вывод текстового результата | johny_03 | Microsoft Office Excel | 3 | 04.08.2014 11:01 |
Как обойти "преобразование типа из "string" в "float" невозможно" | lexluter1988 | Помощь студентам | 1 | 07.08.2010 12:23 |
"ОКРВВЕРХ", "ОКР", "ЕСЛИ". Как бы их связать. | Каравай | Microsoft Office Excel | 13 | 17.02.2010 09:53 |
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" | aleksei78 | Microsoft Office Excel | 13 | 25.08.2009 12:04 |