la UPDATE fatta così prevede che la subquery riporti UN SOLO valore, non un recordset.

devi usare una forma diversa, tipo

codice:
Update sk_generale set Premio=

((anask.coefficente * (SUM(gen.Punti))/100)) * (Lordi_op.lordo *(ana_op.perc_part_time)/13)
from sk_generale gen
                join sk_generale gen1
		on gen.OP = gen1.OP
			--and gen.Punti = gen1.Punti
			    join ANA_SKILL anask
             			on gen.SKILL=anask.ID 
					and gen1.SKILL = anask.ID
             				 	join ANA_OP ana_op 
              					on ana_op.CodiceFiscale = gen.OP
                   				     and ana_op.CodiceFiscale = gen1.OP
		     					join Lordi_OP  
                 					on Lordi_OP.Livello = ana_op.Livello

group by gen.Mese,gen.ID_GRUPPO,gen1.ID_GRUPPO,anask.COEFFICENTE,Lordi_OP.LORDO,ana_op.PERC_PART_TIME,gen1.Mese

HAVING gen.ID_GRUPPO <> gen1.ID_GRUPPO and gen.Mese <> gen1.Mese

ho buttato lì semplificando, sistemala tu