@nicola75ss
sarà il caldo, ma la tua query è un po' troppo complicata per la mia fragile testolina. E poi con union i campi non si accodano?
Però mi hai dato l'idea giustissima della subquery .
Il fatto che moltiplicasse i risultati mi ha fatto capire che mancava un raggruppamento da qualche parte, ed ecco la (semplice) soluzione:

codice:
SELECT U.cognome, U.nome, SUM(M.quantita) AS maturati, 
(SELECT SUM(quantita) FROM buoni_consegnati WHERE id_utente=M.id_utente GROUP BY id_utente) AS consegnati
FROM utenti AS U INNER JOIN buoni_maturati AS M ON U.id=M.id_utente
GROUP BY U.id

Thanx!