Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Проблемма с EXCEPT  [new]
shefus
Member

Откуда:
Сообщений: 116
Добрый день! У меня странная ситуация - не могу понять в чём проблема:

Есть две таблицы:
Таб1 - 15 000 записей
Таб2

Запрос:
SELECT      IdP
FROM         Таб1
where IdP IN (
SELECT      IdP
FROM            Таб2)

возвращает 6 000 записей.
Запрос:
SELECT     IdP
FROM         Таб1
EXCEPT 
SELECT      IdP
FROM            Таб2


должен вернуть 9 000 записей, а возвращает 7 000 !!!

Подскажите, что не так и в чем проблем?

PS Если эти же таблицы присоединённые к Access сравнить в запросе:
SELECT IdP
FROM Таб1 LEFT JOIN Таб2 ON Таб1.IdP = Таб2.IdP
WHERE Таб2.IdP Is Null;

То возвращает правильно - 9000 записей
26 окт 13, 15:24    [15036037]     Ответить | Цитировать Сообщить модератору
 Re: Проблемма с EXCEPT  [new]
qwerty112
Guest
shefus
Запрос:
SELECT     IdP
FROM         Таб1
EXCEPT 
SELECT      IdP
FROM            Таб2


должен вернуть 9 000 записей, а возвращает 7 000 !!!

ты EXCEPT и INTERSECT - не путаешь ?
26 окт 13, 15:43    [15036048]     Ответить | Цитировать Сообщить модератору
 Re: Проблемма с EXCEPT  [new]
shefus
Member

Откуда:
Сообщений: 116
qwerty112,

Вроде нет:

EXCEPT
Возвращает все различные значения, возвращенные запросом, указанным слева от оператора EXCEPT, но отсутствующие в результатах выполнения правого запроса.
26 окт 13, 15:50    [15036051]     Ответить | Цитировать Сообщить модератору
 Re: Проблемма с EXCEPT  [new]
qwerty112
Guest
shefus
Запрос:
SELECT     IdP
FROM         Таб1
EXCEPT 
SELECT      IdP
FROM            Таб2


должен вернуть 9 000 записей, а возвращает 7 000 !!!

Подскажите, что не так и в чем проблем?

наверное есть повторы IdP в Таб1 , а EXCEPT - оставляет в итоге одно значение
declare @t1 table (id int)
declare @t2 table (id int)

insert into @t1 select 1 union all select 1 union all select 2
insert into @t2 select 2

select id from @t1
except 
select id from @t2

id
-----------
1

(1 row(s) affected)
26 окт 13, 15:53    [15036055]     Ответить | Цитировать Сообщить модератору
 Re: Проблемма с EXCEPT  [new]
shefus
Member

Откуда:
Сообщений: 116
qwerty112
наверное есть повторы IdP в Таб1 , а EXCEPT - оставляет в итоге одно значение



Да, так и есть. Спасибо!!!
26 окт 13, 16:12    [15036068]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить