Podrias probar la siguientes opciones:
1) Construir el rango r_acao para el campo acao.
SELECT pep,acao,conta_debito,ccusto_debito,conta_credito, ccusto_cretito
FROM zistps_mtcd_acao
INTO TABLE tl_mtcd_acao.
SORT tl_mtcd_acao BY pep acao.
DELETE tl_mtcd_acao
where NOT pep IN rl_pep_ran or NOT acao IN r_acao.
2) Construir el rango r_acao para el campo acao.
Construir la tabla interna t_pep sólo con los valores de pep.
SELECT pep,acao,conta_debito,ccusto_debito,conta_credito, ccusto_cretito
FROM zistps_mtcd_acao
INTO TABLE tl_mtcd_acao.
SORT tl_mtcd_acao by acao
DELETE tl_mtcd_acao
NOT acao IN r_acao.
SORT t_pep by pep.
SORT tl_mtcd_acao BY pep.
LOOP at tl_mtcd_acao.
READ TABLE t_pep
WITH KEY pep = tl_mtcd_acao-pep
BINARY SEARCH
TRANSPORTING NO FIELDS.
IF sy-sybrc NE 0.
DELETE tl_mtcd_acao
WHERE pep EQ tl_mtcd_acao-pep.
CONTINUE.
ENDIF.
ENDLOOP.
Nota: El uso de SELECT sin clausula WHERE no es recomendable si aumenta significativamente el número de registros de la tabla zistps_mtcd_acao.
Saludos.
|