The way I used to do this is with multiple Selects into a temp table in SQL Server (or Union of selects in Access). The key is to add a Level column which would contain a number, from 1 to 5 for example, for each grouping level. Once the data is in Excel, you would then create the Subtotals and Groupings based on that column. Gives a really nice drill down capability to the report.
Leon