-- нам нужно получить лесенку рабочих версий (разобравшись между dt_from и версией) -- на произвольную дату выбираем максимальную версию, для которой dt_from <= этой даты -- допустим, мы рассчитываем актуальную версию на каждый dt_from, в остальных точках актуальность версии тянется от dt_from select siv_uid, line_key, dt_from, dt_to, agreement_version, line_version, agreement_is_actual, siv_is_actual, deal_status_id, probability_pc from elma.mv_line where siv_is_actual AND probability_pc > 0 AND contract IN ('01914_1')--,'02418_2','05042021/01') --contract is not null order by line_key, agreement_version, line_version --select * from elma.mv_line where agreement_is_actual and NOT siv_is_actual -- 0 rows --select * from elma.mv_line where NOT siv_is_actual -- >0 select c.line_key, c.dt_from, c.agreement_version, c.line_version, c.agreement_is_actual, siv_is_actual, deal_status_id, probability_pc from elma.mv_line c join order by line_key, agreement_version, line_version, dt_from