simple having solution
select product_id, product_name\nfrom Product\nwhere product_id in \n(select product_id\nfrom Sales\ngroup by product_id\nhaving max(sale_date) <= \'2019-03-31\
select product_id, product_name\nfrom Product\nwhere product_id in \n(select product_id\nfrom Sales\ngroup by product_id\nhaving max(sale_date) <= \'2019-03-31\' and min(sale_date) >= \'2019-01-01\')
[]