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

Откуда:
Сообщений: 265
Подскажите, у меня есть пустые строки с условием C.VidID = 2 AND C2.SubActivity = 11, но когда я делаю через
NOT(EXISTS(SELECT * FROM Approvals A2 WHERE A2.ID = C.ID AND A2.Magic = 'CONTRACTTENDER' AND  A2.[Type] IS NULL ))
то у меня не выводятся ни как пустые строки, смотрите такая ситуация в таблице ContractFull есть запись, а в таблице Approvals с учетом именно этого Magic = 'CONTRACTTENDER нету записи вообще такой и я хотел бы что бы выводилось значение даже если нету, сейчас пока как бы я не делал выводится все кроме этих несуществующих строк, возможно криво описал ситуацию, надеюсь поймете %)

SELECT  C.ID, C.CodePostav, C.VidID, C2.SubActivity, COUNT(isnull(C.Approval,0)) as Job

FROM ContractFullSubActivity C2
INNER JOIN ContractFull C ON C.ID = C2.ContractID 
WHERE C.[Status] > 0 AND C.Archive <> -1 AND 
C.Approval IN (SELECT A.TYPE 
FROM Approvals A 
  WHERE C2.ContractID = A.ID and A.Magic = 'CONTRACTTENDER' AND 
  ((A.[Type]  in (0,11)) OR 
  NOT(EXISTS(SELECT * FROM Approvals A2 WHERE A2.ID = C.ID AND A2.Magic = 'CONTRACTTENDER' AND  A2.[Type] IS NULL )))   
  AND A.[Type] <> 12 AND A.[Type] <> 4 AND A.[Type] <> 7  AND C.Archive <> -1) 
AND C.VidID = 2 AND C2.SubActivity = 11
GROUP BY  C.ID, C.CodePostav, C.VidID, C2.SubActivity 
6 июн 16, 21:59    [19265038]     Ответить | Цитировать Сообщить модератору
 Re: NOT EXISTS  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31993
Pabl0
возможно криво описал ситуацию, надеюсь поймете %)
Увы :-(
6 июн 16, 22:01    [19265044]     Ответить | Цитировать Сообщить модератору
 Re: NOT EXISTS  [new]
Pabl0
Member

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

другими словами нужно что бы
NOT(EXISTS(SELECT * FROM Approvals A2 WHERE A2.ID = C.ID AND A2.Magic = 'CONTRACTTENDER' AND  A2.[Type] IS NULL ))
выводились пустые строки
6 июн 16, 22:03    [19265051]     Ответить | Цитировать Сообщить модератору
 Re: NOT EXISTS  [new]
Владислав Колосов
Member

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

это left/right join решает. Соединяете с одним полным набором данных второй слева или справа. В недостающих строка будет NULL.
6 июн 16, 23:10    [19265182]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить