## Order of rows in Proc Report

Frequent Contributor
Posts: 142

# Order of rows in Proc Report

Hello

I am using proc report to display data and calculate a new field.

I want that the rows in the output of Proc Report will be ordered by value of total_x (descending

`````` Data tbl;
input branch X1  X2  X3  X4;
cards;
1  10 20 30 40
2  15 20 25 30
3  35 40 45 50
4  55 60 65 .
;
run;

proc report data=tbl  headline split='#' spacing=1 nowd
style(column)={font_size=1};
columns  branch X1  X2  X3  X4  total;
define branch/ display
"Branch"  center;
define X1/  Display "X1 amount";
define X2/  Display "X2 amount";
define X3/  Display "X3 amount";
define X4/  Display "X4 amount";
define total/computed order=internal descending ;
compute total;
total=sum(x1,x2,x3,x4);
endcomp;
Run;``````

)

Super User
Posts: 10,255

## Re: Order of rows in Proc Report

The log says it all. To be more specific, you can't use a computed value for ordering, as ordering in proc report takes place before values are computed.

Create the variable first, and then use it for ordering in proc report:

``````Data tbl;
input branch X1  X2  X3  X4;
total = sum(x1,x2,x3,x4);
cards;
1  10 20 30 40
2  15 20 25 30
3  35 40 45 50
4  55 60 65 .
;
run;

proc report data=tbl  headline split='#' spacing=1 nowd
style(column)={font_size=1};
columns  branch X1  X2  X3  X4  total;
define branch/ display
"Branch"  center;
define X1/  Display "X1 amount";
define X2/  Display "X2 amount";
define X3/  Display "X3 amount";
define X4/  Display "X4 amount";
define total/order descending;
Run;``````
---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
How to convert datasets to data steps
How to post code
Discussion stats