#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. Это комментарий, а не реальный ответ