相関サブクエリーで未来と過去それぞれを抽出し、coalesceで優先判断
SQL
1with 入荷履歴 as(
2 select '2019-04-01' as 入荷日 ,'りんご' as 商品名,'100' as 価格,'千葉' as 産地 from dual
3 union all select '2019-05-01','りんご','80','千葉' from dual
4 union all select '2019-06-01','りんご','120','山梨' from dual
5 union all select '2019-04-01','ばなな','100','エクアドル' from dual
6 union all select '2019-05-01','ばなな','200','沖縄' from dual
7 union all select '2019-04-01','メロン','600','北海道' from dual
8)
9select * from 入荷履歴 t
10where 入荷日 = (
11 select coalesce(
12 (select min(入荷日) from 入荷履歴 where 入荷日>'2019-04-10' and 商品名=t.商品名)
13 , (select max(入荷日) from 入荷履歴 where 入荷日<='2019-04-10' and 商品名=t.商品名)
14 ) from dual
15 )
※with式はテーブルの代わり
追記
もったいないので、yambejpさんのも
SQL
1with 入荷履歴 as(
2 select '2019-04-01' as 入荷日 ,'りんご' as 商品名,'100' as 価格,'千葉' as 産地 from dual
3 union all select '2019-05-01','りんご','80','千葉' from dual
4 union all select '2019-06-01','りんご','120','山梨' from dual
5 union all select '2019-04-01','ばなな','100','エクアドル' from dual
6 union all select '2019-05-01','ばなな','200','沖縄' from dual
7 union all select '2019-04-01','メロン','600','北海道' from dual
8)
9select * from 入荷履歴
10where (入荷日,商品名) in (
11 select min(入荷日),商品名 from 入荷履歴 where 入荷日>='2019-04-10' group by 商品名
12 union
13 select max(入荷日),商品名 from 入荷履歴 group by 商品名 having max(入荷日)<'2019-04-10'
14 )