CREATE OR REPLACE VIEW V_BACO AS SELECT bas_code ,selling_price ,cost_price ,delivery_cost ,regi_code ,valid_from AS effective_from ,least(nvl(valid_to ,to_date('2099' ,'yyyy')) ,nvl(next_valid_from ,to_date('2099' ,'yyyy'))) AS effective_to FROM (SELECT bas_code ,selling_price ,cost_price ,delivery_cost ,regi_code ,valid_from ,valid_to ,lead(valid_from) over(PARTITION BY cost.bas_code, regi_code ORDER BY valid_from) AS next_valid_from FROM costs cost WHERE cost_type = 'BACO');