I wasn't sure exactly how you wanted the specific items you requested to be accessed so I put the values into Macro Variables that can be referenced however you want. I build the logic in a macro statement but it could just have easily been a simple data step. I went with the macro statement instead so that the data step could easily be used across multiple datasets throughout a process if needed (so long as the values from one run are used prior to the values of a separate tables run otherwise the macro values will overwrite one another). %MACRO TableDtls(TableName, InputSumVar, OutputCumSumVar);
DATA _NULL_;
DSID = OPEN("&TableName.");
Vars = ATTRN(DSID,"NVARS");
CALL SYMPUTX('Total_Variables',Vars, 'G'); /* put variable count in macro variable */
CALL SYMPUTX('Total_Observations',&SQLOOPS., 'G'); /* put variable count in macro variable */
RC = CLOSE(DSID);
SET &TableName.;
FORMAT &OutputCumSumVar. 5.1;
RETAIN &OutputCumSumVar.;
IF _N_=1 THEN &OutputCumSumVar. = &InputSumVar.;
ELSE &OutputCumSumVar. = (&OutputCumSumVar. + &InputSumVar.);
CALL SYMPUTX("&OutputCumSumVar",&OutputCumSumVar., 'G'); /* put variable count in macro variable */
RUN;
%PUT &=Total_Variables;
%PUT &=Total_Observations;
%PUT &OutputCumSumVar.= &&&OutputCumSumVar.;
%MEND TableDtls;
%TableDtls(SASHELP.class, Weight, Sum_Weight); So when you call the TableDtls Macro, you will provide 3 pieces of information: - First, the name of the table that you want to get the observation count, variable count, and summary details - Second, the name of the variable that you want the summary details - Third, the name that you want for the new macro variable that will resolve to the sum of the previously supplied variable The three new Macro variables generated will resolve with these values: TOTAL_VARIABLES=5
TOTAL_OBSERVATIONS=19
Sum_Weight= 1900.5 Confirming that the SASHELP.Class table contains: - 5 variables - 19 total observations - And the sum of the 19 weight values equals 1900.5. Here is the data in the SASHELP.Class table for review: Obs Name Sex Age Height Weight
1 Alfred M 14 69.0 112.5
2 Alice F 13 56.5 84.0
3 Barbara F 13 65.3 98.0
4 Carol F 14 62.8 102.5
5 Henry M 14 63.5 102.5
6 James M 12 57.3 83.0
7 Jane F 12 59.8 84.5
8 Janet F 15 62.5 112.5
9 Jeffrey M 13 62.5 84.0
10 John M 12 59.0 99.5
11 Joyce F 11 51.3 50.5
12 Judy F 14 64.3 90.0
13 Louise F 12 56.3 77.0
14 Mary F 15 66.5 112.0
15 Philip M 16 72.0 150.0
16 Robert M 12 64.8 128.0
17 Ronald M 15 67.0 133.0
18 Thomas M 11 57.5 85.0
19 William M 15 66.5 112.0 Hope this helps.
... View more