Usually there is little benefit to transposing long to wide. If you want to create a report (as opposed to a SAS data set) in this wide format that you want, leave the data as it is in the long arrangement, and use PROC REPORT.
proc report data=have;
columns id profit,(" " serial) revenue,(" " serial) ;
define id/group 'ID';
define serial/across " ";
define revenue/sum 'Revenue';
define profit/sum 'Profit';
run;
There are plenty of formatting capabilites to make the above PROC REPORT output look nicer if needed.
... View more