I think you may kick yourself when you see it.
Look at this: $db->qn(array('SUM(b.DonationAmount)'
The QuoteName method puts quotes around what ever you give it - it isn't clever - it'll totally prevent that SQL SUM function from working just like you told it to.
Also, quoting is for dealing with user input, whitespace, special characters, and db engine differences. If you're only implementing this on regular MySQL then you don't need to quote anything in your select statement.
You can totally write:
->select('a.ID, a.FirstName, a.LastName, SUM(b.DonationAmount) AS Amount')
and it is fine.