Try this (it's close to CiCi's but I think gives you want you want):
data dataset1;
infile datalines delimiter=',';
input date ord_no item update_date ;
informat date ddmmyy10. update_date ddmmyy10.;
format date ddmmyy10. update_date ddmmyy10.;
datalines;
04/09/2017,111,56,04/10/2017
04/09/2017,112,45,04/10/2017
04/09/2017,113,32,04/10/2017
04/09/2017,114,46,04/10/2017
04/09/2017,115,64,04/10/2017
;
run;
data dataset2;
infile datalines delimiter=',';
input date ord_no item update_date ;
informat date ddmmyy10. update_date ddmmyy10.;
format date ddmmyy10. update_date ddmmyy10.;
datalines;
04/09/2017,111,56,04/11/2017
04/09/2017,112,78,04/11/2017
04/09/2017,113,32,04/11/2017
04/09/2017,114,46,04/11/2017
04/09/2017,122,34,04/11/2017
04/09/2017,124,56,04/11/2017
04/10/2017,134,75,04/11/2017
04/10/2017,135,76,04/11/2017
04/10/2017,136,77,04/11/2017
;
run;
proc sort data=dataset1;
by ord_no;
run;
proc sort data=dataset2;
by ord_no;
run;
data output;
merge dataset2(in=a) dataset1(in=b);
by ord_no;
if b and not a then delete;
run;
The only anomaly is in ord_no 114 which has a different ord_no than your output but I thbink follows your update rules
... View more