Фильтр по дате по конкретному параметру

Всем привет! Подскажите, пожалуйста, возможно ли сделать фильтр по дате но для oper_type = 1.. Есть такой набор данных:

with cte as  (
 select to_date ('02.11.2021','dd.mm.yyyy') as dt,1 oper_type,1234 as id
 from dual
 union all
 select to_date ('02.11.2021','dd.mm.yyyy') as dt,1 oper_type,1235 as id
 from dual
 union all
 select to_date ('11.11.2021','dd.mm.yyyy') as dt,2 oper_type,1234 as id
 from dual
 union all
 select to_date ('12.11.2021','dd.mm.yyyy') as dt,2 oper_type,1235 as id
 from dual
 union all
 select to_date ('02.11.2021','dd.mm.yyyy') as dt,1 oper_type,1236 as id
 from dual
 )   

Результат должен быть такой:

     select max(case when oper_type = 1 then dt end) as dt1
        ,max(case when oper_type = 2 then dt end) as dt2
        ,id
 from cte
 group by id

Но при этом нужно поставить фильтр на дату, но для oper_type = 1:

     select max(case when oper_type = 1 then dt end) as dt1
        ,max(case when oper_type = 2 then dt end) as dt2
        ,id
 from cte
 where (dt < to_date ('03.11.2021') and oper_type = 1)
 group by id

Результат неверен, тк второй столбец пустой, а должен быть заполнен... Возможно ли реализовать данный фильтр или нужно делать селф джойн к этой таблице?


Ответы (0 шт):