Estimado, con estas lineas se soluciona tu inconveniente.
DATA: lsvez TYPE c,
kmpo1 LIKE gtd-campo1,
kmpo2 LIKE gtd-campo2,
kmpo3 LIKE gtd-campo3,
gstot LIKE gtd-campo4.
CLEAR gstot.
LOOP AT gtd.
IF lsvez IS INITIAL.
kmpo1 = gtd-campo1.
kmpo2 = gtd-campo2.
kmpo3 = gtd-campo3.
lsvez = 'X'.
ENDIF.
IF gtd-campo1 EQ kmpo1 AND gtd-campo2 EQ kmpo2
AND kmpo3 EQ gtd-campo3.
gstot = gstot + gtd-campo4.
ELSE.
WRITE: /1 gtd-campo1, gtd-campo2, gtd-campo3, gstot.
CLEAR gstot.
kmpo1 = gtd-campo1.
kmpo2 = gtd-campo2.
kmpo3 = gtd-campo3.
gstot = gstot + gtd-campo4.
ENDIF.
ENDLOOP.
WRITE: /1 gtd-campo1, gtd-campo2, gtd-campo3, gstot.
Avisas como te fué.
Saludos.