This report could be done with PROC REPORT or PROC TABULATE. There is no need to post your question in more than one forum -- it makes it look like you are shopping for an answer and don't really read the descriptions of the forum topics.
It might also be useful if you would take a step back and search for previous forum postings about PROC REPORT and PROC TABULATE to see the types of reports and types of capabilities that each procedure has. In addition, a Google Search on either of these strings:
SAS PROC REPORT beginner
SAS PROC TABULATE beginner
and you will find some useful hits that outline both REPORT and TABULATE basics.
I agree with Cynthia that this task is for procs REPORT or TABULATE. Anyway the major part of the possible solution could be like this:
proc means data=outst_amt noprint;
output out=t1 (drop=_freq_) Sum=S;
class cus_cat prd_cat date_values;
proc transpose data=t1 (where=(_type_=5)) out=r1 (drop=_name_) prefix=_;
proc transpose data=t1 (where=(_type_=3)) out=r2 (drop=_name_) prefix=_;
No TRANSPOSE is necessary, although it is a clever solution. Both PROC REPORT and PROC TABULATE will create reports directly from the data without any restructuring.
But before I post any code here, I'd like to hear from the original poster about what code they've tried and whether they've looked at or tried any of the code that's been posted in response to this and similar questions.