Ver Mensaje Individual
  #4  
Viejo 16/06/12, 04:08:35
calin calin is offline
Member
 
Fecha de Ingreso: jul 2011
Mensajes: 52
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.
Responder Con Cita