Here's a way to FLAG records for gain or loss that uses a SAS supplied data set you should have available since you haven't provided example data in a form useable for code.
proc summary data=sashelp.stocks;
var date;
output out=work.datesum max= min=/autoname;
run;
proc sql noprint;
select min(date), max(date) into :mindate, :maxdate
from sashelp.stocks
;
quit;
/* sort the data as not in stock, date order
remove some records to have different date
ranges as the same for the stocks
in the base data
*/
proc sort data=sashelp.stocks
out=work.stocks (where= ( (stock='IBM' and date<'01JUL2005'd)
or (stock='Microsoft' and date>'01JUN1987'd)
)
);
by stock date;
run;
data example;
set work.stocks;
by stock;
if first.stock and date ne &mindate. then GainFlag=1;
if last.stock and date ne &maxdate. then LossFlag =1;
run;
If the proper values are flagged then it is a trivial exercise to OUTPUT the flagged records to a data set, separate data sets or write reports with the information of which records are gains and losses.
... View more