Ciao a tutti!

credo di essere nel pallone , però non ne vengo fuori...
ho una query con delle union e il risultato che mi restitusce è corretto ma non è raggruppato come vorrei;

la query è semplicemente cosi:
codice:
select idutente,cognome, nome, 
round(cast(sum(...) as float)/60,2) as oraMattino,  ' ' as oraPomeriggio,  ' ' as oraSera from <tabella> where <condizione> gruop by idutente,cognome, nome
union
select idutente,cognome, nome, ' ' as oraMattino,  
round(cast(sum(...) as float)/60,2) as oraPomeriggio,  ' ' as oraSera from <tabella> where <condizione> gruop by idutente,cognome, nome
union
select idutente,cognome, nome, ' ' as oraMattino,  ' ' as oraPomeriggio,  
round(cast(sum(...) as float)/60,2) as oraSera from <tabella> where <condizione> gruop by idutente,cognome, nome

order by idutente,cognome, nome

e mi restituisce questo:

123 rossi paolo 0 0 5
123 rossi paolo 1 0 0
123 rossi paolo 0 3 0
456 bianchi michele 0 2 0
456 bianchi michele 0 0 7



vorrei avere come risultato semplicemente una riga per utente:

123 rossi paolo 1 3 5
456 bianchi michele 0 2 7


come devo fare ?