Getting Started Example for PROC COMPUTAB
/*--------------------------------------------------------------
SAS Sample Library
Name: ctags.sas
Description: Example program from SAS/ETS User's Guide,
The COMPUTAB Procedure
Title: Getting Started Example for PROC COMPUTAB
Product: SAS/ETS Software
Keys: programmable tabular reports
PROC: COMPUTAB
Notes:
--------------------------------------------------------------*/
data report;
length compdiv $ 1;
input compdiv $ date:date7. salary travel insure advrtise;
format date date7.;
label travel = 'Travel Expenses within U.S.'
advrtise = 'Advertising'
salary = 'Permanent Staff Salaries'
insure = 'Benefits Including Insurance';
datalines;
A 31JAN1989 95000 10500 2000 6500
B 31JAN1989 668000 112000 5600 90000
C 31JAN1989 105000 6800 9000 18500
A 28FEB1989 91000 8200 1900 12000
B 28FEB1989 602000 99000 5500 86000
C 28FEB1989 96000 6000 8500 16000
;
title 'Year to Date Expenses';
proc computab cwidth=8 cdec=0;
columns a b c / 'Division' _name_;
columns total / 'All' 'Divisions' +4 f=dollar10.0;
rows travel advrtise salary insure / _label_;
rows insure / dul;
rows sum / 'Total';
a = compdiv = 'A';
b = compdiv = 'B';
c = compdiv = 'C';
colblk: total = a + b + c;
rowblk: sum = travel + advrtise + salary + insure;
run;
data report;
length compdiv $ 1;
input compdiv $ date:date7. salary travel insure advrtise;
format date date7.;
label travel = 'Travel Expenses within U.S.'
advrtise = 'Advertising'
salary = 'Permanent Staff Salaries'
insure = 'Benefits Including Insurance';
datalines;
A 31JAN1989 95000 10500 2000 6500
B 31JAN1989 668000 112000 5600 90000
C 31JAN1989 105000 6800 9000 18500
A 28FEB1989 91000 8200 1900 12000
B 28FEB1989 602000 99000 5500 86000
C 28FEB1989 96000 6000 8500 16000
;
title 'Listing of Monthly Divisional Expense Data';
proc print data=report;
run;
title 'Monthly Divisional Expense Report';
proc computab data=report;
run;
proc computab data=report;
rows travel advrtise salary;
run;
proc computab data= report;
rows travel advrtise salary insure;
columns a b c;
*----select column for company division,
based on value of compdiv----*;
a = compdiv = 'A';
b = compdiv = 'B';
c = compdiv = 'C';
run;
proc computab data= report;
rows travel advrtise salary insure sum;
columns a b c total;
a = compdiv = 'A';
b = compdiv = 'B';
c = compdiv = 'C';
colblk: total = a + b + c;
rowblk: sum = travel + advrtise + salary + insure;
run;
title 'Year to Date Expenses';
proc computab cwidth=8 cdec=0;
columns a b c / 'Division' _name_;
columns total / 'All' 'Divisions' +4 f=dollar10.0;
rows travel advrtise salary insure / _label_;
rows insure / dul;
rows sum / 'Total';
a = compdiv = 'A';
b = compdiv = 'B';
c = compdiv = 'C';
colblk: total = a + b + c;
rowblk: sum = travel + advrtise + salary + insure;
run;