Inserirei prima il record con la somma nella stessa tabella
codice:
insert into MG_INVENT_RIG (cod_art,qta_esistenza,prg_invent)
select cod_art,SUM(qta_esistenza),prg_invent
from MG_INVENT_RIG where cod_art = 'A' and prg_invent = 3
group by cod_art,prg_invent
e quindi cancellerei tutti i record specificati tramite i criteri di ricerca tranne quello con l'id maggiore che è quello appena inserito.
codice:
delete from MG_INVENT_RIG where cod_art = 'a' and prg_invent = 3 and id <> (
select MAX(id) from MG_INVENT_RIG where cod_art = 'a' and prg_invent = 3)
Prova prima su una copia della tabella.