data have;
input GVKey $ RD $ Quarter$;
infile datalines dlm = ' ';
Report_date=mdy( substr(rd,4,2) , substr(rd,1,2) , substr(rd,7,2) );
format Report_date ddmmyy10.;
datalines;
1001 31-03-21 Q1
1001 30-06-21 Q2
1001 30-09-21 Q3
1001 05-10-21 Q3
1001 10-10-21 Q3
1001 31-12-21 Q4
1002 31-03-21 Q1
1002 30-06-21 Q2
1002 01-07-21 Q2
1002 30-09-21 Q3
1002 31-12-21 Q4
; run;
data out_last out_dup;
set have;
by GVKey Quarter;
if last.quarter=1 then output out_last;
else output out_dup;
run;