Not sure how you would select a centralized zip for a large city. Here is a start, at least, for getting zip from city and state:
/* create DoctorCityState for testing purposes; */
data need(drop=wantzip);
input doctor wantzip;
city=scan(zipcity(wantzip),1,',');
state=zipstate(wantzip);
cards;
1 15101
2 15102
3 15104
4 15106
5 15108
6 15210
7 15212
8 15216
9 15220
;
proc sql;
create table DoctorCityState as
select a.doctor,a.city,a.state,b.zip
from DoctorCityState a,
sashelp.zipcode b
group by a.doctor,b.city,b.state
having upcase(a.city) eq upcase(b.city)
and upcase(a.state) eq upcase(b.statecode)
and b.zip eq min(b.zip)
;
quit;
/* END: create DoctorCityState for testing purposes; */
Art, CEO, AnalystFinder.com
... View more