You know... you should perhaps consider posting a test case that has some sort of remote chance of even working. Something that suggests you put a bit of effort into it. Something that suggests you had a vested interest in working with us *together* to get to solution....
SQL> create table historic_price (product_id number(10),price number(5),cessation_date date);
Table created.
SQL> insert into hisotric_price values(1,10,9-3-17);
insert into hisotric_price values(1,10,9-3-17)
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> insert into hisotric_price values(1,11,24-3-17);
insert into hisotric_price values(1,11,24-3-17)
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> insert into hisotric_price values(1,12,30-3-17);
insert into hisotric_price values(1,12,30-3-17)
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> create table product_info (product_id number(10),grant_date date)
2 insert into product_info (1,4-3-17);
insert into product_info (1,4-3-17)
*
ERROR at line 2:
ORA-00922: missing or invalid option
Because as it stands...it sort of reads like "You spent only 10 seconds on this, but you want us to spend 10 mins or more on it".... sigh
SQL> create table historic_price (product_id number(10),price number(5),cessation_date date);
Table created.
SQL> insert into historic_price values(1,10,date '2017-03-09');
1 row created.
SQL> insert into historic_price values(1,11,date '2017-03-24');
1 row created.
SQL> insert into historic_price values(1,12,date '2017-03-30');
1 row created.
SQL> create table product_info (product_id number(10),grant_date date);
Table created.
SQL> insert into product_info values (1,date '2017-03-04');
1 row created.
SQL>
SQL> with all_records as
2 ( select product_id, price, cessation_date d from historic_price
3 union all
4 select product_id, null, grant_date d from product_info )
5 select
6 product_id, d, lead(price) over ( partition by product_id order by d )
7 from all_records
8 order by 1,2;
PRODUCT_ID D LEAD(PRICE)OVER(PARTITIONBYPRODUCT_IDORDERBYD)
---------- --------- ----------------------------------------------
1 04-MAR-17 10
1 09-MAR-17 11
1 24-MAR-17 12
1 30-MAR-17
4 rows selected.