Reporting Services makes this very easy - in fact, if you were to just use the wizard (table wizard in Report Builder, report wizard in Visual Studio/BIDS), and add all of your grouping fields to the "groups" section, and then enable subtotals, the summing would be done for you, and you could then alter the field using an expression to divide the two summed fields.
Here's a link to some more useful information on grouping and aggregates: http://technet.microsoft.com/en-us/library/ms170712.aspx