Хочешь сегодня. Поэтому я бы предложил not exists
:
select ce.customerid
from customerevent ce
where eventtype = 1 and
event_date >= current_date and
event_date < current_date + interval '1 day' and
not exists (select 1
from customerevent ce2
where ce2.customerid = ce.customerid and
ce2.eventtype = 2 and
ce2.eventdate > ce.eventdate
);
Вы можете легко включить это в представление.
Примечание: функции даты / времени, как известно, специфичны для базы данных c, поэтому точный синтаксис «сегодня» может отличаться.
РЕДАКТИРОВАТЬ:
На SQL сервере это может быть записано как:
select ce.customerid
from customerevent ce
where eventtype = 1 and
convert(date, event_date) >= concat(date, current_date) and
not exists (select 1
from customerevent ce2
where ce2.customerid = ce.customerid and
ce2.eventtype = 2 and
ce2.eventdate > ce.eventdate
);