In principle, you can't create this type of output as a default part of the TABULATE function; in essence, you are asking for two different table definitions. Anything you do with the SAS syntax will basically amount to adding more dimensions to the table, but it won't fix your core problem. You can use this code to get the tables you want, but they're still different tables: PROC TABULATE DATA=want NOSEPS; VAR stake winnings margin; TABLE (stake winnings),(N SUM MEAN MEDIAN STDDEV MIN MAX); TABLE (margin),(N MEAN MEDIAN STDDEV MIN MAX); RUN; There are some guides out there on hacking ODS to do what you want (namely, create "stacked tables" where several child tables are assembled into a single table. Check out here for an example. If you Google "SAS stack tables" you'll find more examples. I've done this in HTML by creating a new tagset - basically, a special ODS destination that removes spaces between tables, etc. I don't have the code that I used anymore, unfortunately; I moved to R to do automated reporting.
... View more