I think "getting rid of duplicate values" is not sufficiently specific for me to understand your request. Yes, LEFT JOIN filters out cases for which POLNUM is not present in A. But any time you have duplicate POLNUM values in B will increase the number of output observations. So which duplicates would you want to drop in order to meet your constraint to have N of rows=N(A)?
Consider the A and B below. POLNUM's 3 and 4 have, respectively a 1-to-many and many-to-many match on POLNUM. Which cases (i.e. which combinations of AREC,BREC) for those POLNUM's do you want to keep?
data a;
do polnum=1 to 4;
arec+1; output;
if mod(polnum,2)=0 then do; arec+1; output; end;
end;
run;
data b;
do polnum=1 to 4;
brec+1; output;
if polnum>2 then do; brec+1; output; end;
end;
run;
proc sql;
create table want as
select *
from A left join B
on a.Polnum = b.Polnum
order by arec,brec;
quit;