2015-01-27 3 views
0

Я пытаюсь выбрать некоторые сообщения из наших запросов на обслуживание клиентов, ГДЕ Владелец Mmessage - это ABC, данные LIKE ABCDEF AND message ... И где это сообщение либо от Customer to CSservice, либо от CSservice до Customer ,SQL AND OR query

Как я могу это сделать?

SELECT Date, From, To, Data 
FROM Ccustomers WITH (NoLock) 
WHERE MSGowner = 'ABC' AND Data LIKE '%ABCDEF%' AND 
([From] ='Customer' AND [To] = 'CSservice') OR ([From] ='CSservice' AND [To] = 'Customer') 

ORDER by Date 
+0

Plus 1 для получения ответа от jergen д, вам просто нужно дополнительный набор скобок вокруг ИЛИ условия. –

ответ

2
SELECT Date, From, To, Data 
FROM Ccustomers WITH (NoLock) 
WHERE MSGowner = 'ABC' 
AND Data LIKE '%ABCDEF%' 
AND 
(
    ([From] = 'Customer' AND [To] = 'CSservice') OR 
    ([From] = 'CSservice' AND [To] = 'Customer') 
) 
ORDER by Date 
+0

Большое спасибо. На самом деле, я понял это через несколько секунд после публикации сообщения :) Все еще изучая SQL :) – Petrik

0

Ваш запрос был в основном правильно. Но вы должны учитывать, что соединение and «сильнее», чем or. Чтобы получить желаемый результат, вам нужно установить скобки.

Попробуйте это:

SELECT Date, [From], [To], Data 
FROM Ccustomers WITH (NoLock) 
WHERE MSGowner = 'ABC' 
AND Data LIKE '%ABCDEF%' 
AND (([From] = 'Customer' AND [To] = 'CSservice') OR ([From] = 'CSservice' AND [To] = 'Customer')) 
ORDER BY Date;