SELECT MODUSL.KUSL, [Table].KUSL AS Expr1
FROM MODUSL CROSS JOIN [Table]
WHERE MODUSL.KUSL != [Table].KUSL
Запрос на выборку в MSSQL!!!!!!
Код:
Помогите, мне нужно чтобы запрос выбирал все не совподающие записи сравнивая две таблицы, т.е. если в одной таб. записи: 1,2,3,4,5, а в другой 2,5,1,3,4,6,8, то запрос должен выбрать 6,8. Выше описанный код не верен он как я понимаю сравнивает по строкам, как его можно исправить?
а не просто вырванный кусок запроса.
Как то сложно по нему догадаться о структуре.
Код:
SELECT [Table].KUSL, [Table].TITLE
FROM [Table] LEFT JOIN KUSL ON [Table].KUSL = MODUSL.KUSL
WHERE (((MODUSL.KUSL) Is Null));
FROM [Table] LEFT JOIN KUSL ON [Table].KUSL = MODUSL.KUSL
WHERE (((MODUSL.KUSL) Is Null));
Вот запрос,помоему я на верном пути только есть ERR:
Сообщение 208, уровень 16, состояние 1, строка 1
Недопустимое имя объекта "KUSL"
Работаю с 2 таб. Table и MODUSL
таб-цы не связаны,поля(столбцы):
KUSL nvarchar(7)
TITLE nvarchar(60)
TS decimal(38, 32)
UET float Checked
VIDOPL_ID int
FULLTITLE nvarchar(250)
BASETS decimal(38, 32)
структура таб-ц одинаковая,
нужно выбрать те записи из [Table].KUSL которых нет в MODUSL.KUSL
Код:
SELECT [Table].KUSL, [Table].TITLE, MODUSL.KUSL AS Expr1
FROM MODUSL RIGHT OUTER JOIN [Table] ON MODUSL.KUSL = [Table].KUSL
WHERE (MODUSL.KUSL IS NULL
FROM MODUSL RIGHT OUTER JOIN [Table] ON MODUSL.KUSL = [Table].KUSL
WHERE (MODUSL.KUSL IS NULL
Код:
SELECT [Table].KUSL, [Table].TITLE
FROM [Table], MODUSL
WHERE [Table].KUSL not in (SELECT MODUSL.KUSL FROM MODUSL);
FROM [Table], MODUSL
WHERE [Table].KUSL not in (SELECT MODUSL.KUSL FROM MODUSL);
если я не затупил :)) проверить сейчас негде.
Цитата: __AleXX__
Код:
SELECT [Table].KUSL, [Table].TITLE
FROM [Table], MODUSL
WHERE [Table].KUSL not in (SELECT MODUSL.KUSL FROM MODUSL);
FROM [Table], MODUSL
WHERE [Table].KUSL not in (SELECT MODUSL.KUSL FROM MODUSL);
Нет это что-то не то, впринцепе работает правельно,но одну и туже запись выберает несколко раз.
Вопрос на "засыпку";) чем мжно перекодировать из *.dbf в *.db? ни один из установленных у меня редакторов этого не могут.:mad:
попробуй прогнать через MS Access
Все отключась пора домой.
Ещё раз спасибо
Код:
SELECT [Table].KUSL, [Table].TITLE
FROM [Table], MODUSL
WHERE [Table].KUSL not in (SELECT MODUSL.KUSL FROM MODUSL);
FROM [Table], MODUSL
WHERE [Table].KUSL not in (SELECT MODUSL.KUSL FROM MODUSL);
и
Код:
SELECT [Table].KUSL, [Table].TITLE, MODUSL.KUSL AS Expr1
FROM MODUSL RIGHT OUTER JOIN [Table] ON MODUSL.KUSL = [Table].KUSL
WHERE (MODUSL.KUSL IS NULL)
FROM MODUSL RIGHT OUTER JOIN [Table] ON MODUSL.KUSL = [Table].KUSL
WHERE (MODUSL.KUSL IS NULL)
для вашего конкретного случая, может, и правильно работают, но в общем случае ошибочны.
Например, если записи есть в MODUSL, но их нет в [Table], они не будут выбраны (что требовалось по условию задачи).
Думаю, правильнее будет так:
Код:
SELECT IF ([Table].KUSL IS NULL) THEN MODUSL.KUSL ELSE [Table].KUSL AS KUSL
FROM MODUSL FULL JOIN [Table] ON MODUSL.KUSL = [Table].KUSL
WHERE (MODUSL.KUSL IS NULL OR [Table].KUSL IS NULL)
FROM MODUSL FULL JOIN [Table] ON MODUSL.KUSL = [Table].KUSL
WHERE (MODUSL.KUSL IS NULL OR [Table].KUSL IS NULL)