Вывести уникальные ID действующих клиентов, у которых отсутствует услуга "Услуга_3"
Помогите не могу связать все воедино, чтобы вышел запрос
Select DISTINCT c.ClientID
from Clients as c
where DateTo = '31.12.9999' -- возвращает уникальных пользователей
как убрать из выборки всех пользователей тех, у кого есть услуга 3?
select distinct ClientID
from Products
where ProductType = 'Услуга_3' -- возвращает пользователей, у которых есть услуга 3
select distinct ClientID --возвращает всех пользователей
from Products
Ответы (1 шт):
Автор решения: vp_arth
→ Ссылка
Самое простое — написать ровно то, что вам нужно:
Select DISTINCT c.ClientID
from Clients as c
where DateTo = '31.12.9999'
and not exists(select 1 from Products where ClientID = c.ClientID AND ProductType='Услуга_3')
Можно использовать join
Select DISTINCT c.ClientID
from Clients as c
LEFT JOIN Products p ON p.ClientID = c.ClientID AND p.ProductType = 'Услуга_3'
WHERE p.ProductType IS NULL
AND c.DateTo = '31.12.9999'