Запрос на удаление людей из списка в тот момент, когда они удовлетворяют любому 1 условию

#sql #sql-server

Вопрос:

Я пытаюсь создать список подавления с помощью запроса. Не следует исключать людей, которые сделали заказ за 1 год или открыли электронное письмо. Остальные люди должны быть в списке. Для извлечения этого списка подавления у меня есть следующий запрос

 /*no orders in 1Y */  select CUSTOMER_UUID   from Customers  where last_transaction_date lt;= DATEADD(year, -1, GetDate())  UNION  /*No opens */  Select distinct CUSTOMER_UUID   from [email_no_opens]   

Но проблема в том, что если клиент открыл электронную почту и не сделал заказ, он все еще находится в списке подавления. Я хочу, чтобы их не было там в тот момент, когда они откроют электронную почту или сделают заказ.

Я не понимаю, как изменить этот запрос.

Комментарии:

1. Что представляет собой ваш список? Люди, которых следует исключить? В вашем названии говорится: «удалить … из списка», что подразумевает, что вы хотите, чтобы список людей был ВКЛЮЧЕН.

Ответ №1:

У вас есть 2 подзапроса, и вы хотите выбрать записи, которые являются результатами как первого, так и второго подзапроса. В этом случае вы должны использовать INTERSECT вместо UNION .

Комментарии:

1. Это комментарий, а не реальный ответ