Since FIRST. and LAST. flags are boolean the difference between than could only ever result in values of -1,0 or 1.
If you want to remember the first date then you need to retain it.
data want;
set have;
by pt_id event_date;
if first.pt_id then first_date = event_date;
format event_date mmddyy10.;
diff = event_date - first_date;
run;
... View more