Eso pienso yo, pero también hay que saber aproyechar toda la fuerza del motor. Fíjate en que el truco es evitarle al motor traerse datos que no necesita. Si le dices que sume y a la vez se traiga todos esos campos de todas las tablas unidas por left join tardará mucho. Como son sólo tres, yo pensé en traerme sólo los valores del agrupado y el id (como clave está indexada, tanto para el dato como para agrupar) que me permita el inner join (o el left join) con las otras tablas. Yo no trabajo con grandes tablas, pero quienes lo hacen son capaces de trabajar con esas funciones de agregado sin problema. Sobre subconsultas encontrarás muchas páginas. A mí me gusta esta, aunque hay muchas otras:
http://www.aulaclic.es/sql/t_5_2.htm
Un consejo que yo leí a nuestro
gnzsoloyo, trabaja en las consultas como si fuera una cebolla, por capas, de dentro hacia afuera. En el caso nuestro, el corazón de la cebolla era sacar las sumas...
saludos, Mayid