T-Sql Query: как выполнить два условия в одной записи, а не только в одной - PullRequest
1 голос
/ 24 января 2012

У меня есть запрос на следующий запрос:

select Opp.[ID], Opp.ContactID, Opp.RTSID, Opp.[ProjectName],
       CONVERT(varchar, Opp.[PurchaseDate], 103) as PurchaseDate,
       CONVERT(varchar,Opp.[SubmissionDate],103) as SubmissionDate,
       Opp.[Cost], Opp.[Selling], Opp.[CompanyName], Opp.[Telephone], 
       Opp.[Fax], Con.[ContactName], Con.[ContactPosition], 
       Con.[ContactDirectPhone], Con.[ContactMobile], Con.[ContactEmail],
       lookup.DescriptionEn as ProjectStatus, Opp.[Wining], Opp.[Remark],
       Opp.[CustomerReference], Sales.FName + ' ' + Sales.LName as SalesMan
from Opportunities Opp inner join Sales on Opp.Sales_Num = Sales.Sales_Num
     left join
       (select MINOR, DescriptionEn from lookup_table where MAJOR = '1') lookup
       ON lookup.MINOR = Opp.ProjectStatus
     left join
       (select ID, ContactName, ContactPosition, ContactDirectPhone, ContactMobile,
                   ContactEmail from Contacts) Con ON Con.ID = Opp.ContactID
where (lookup.DescriptionEn = @ProjectStatus or @ProjectStatus ='-1') and 
      (Opp.Sales_Num = @SalesMan or @SalesMan ='-1') and
      (Opp.Selling >= @Selling or @Selling ='0') and 
      (lookup.MINOR <> '7' and datediff(day , Opp.SubmissionDate , getdate()) < 30 )
End

Последняя строка, которая содержит условие и (lookup.MINOR <> '7' или .......) не работает какожидается, что он либо получит записи, где MINOR <> '7' или другое

Я хочу указать два условия, которые должны выполняться только в одной записи

Как это сделать?

Ответы [ 2 ]

2 голосов
/ 24 января 2012

Используйте И вместо ИЛИ .

2 голосов
/ 24 января 2012

Заменить

(lookup.MINOR <> '7' and datediff(day , Opp.SubmissionDate , getdate()) < 30 )

на

(lookup.MINOR <> '7' OR datediff(day , Opp.SubmissionDate , getdate()) < 30 )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...