Ver Mensaje Individual
  #10  
Viejo 16/06/08, 18:33:06
ic_man_777 ic_man_777 is offline
Member
 
Fecha de Ingreso: oct 2007
Localización: Mexico
Mensajes: 97
Bueno, eso que ves es lo que se me ocurrió pero posiblemente se puede hacer de una forma mejor.


Explico:

LOOP AT t_PEDIDOS
WHERE bstnk = ''.
DELETE t_pedidos.
ENDLOOP.

Lo que pasa es que en mis datos me aparecían muchos registros en los cuales el campo BSTNK está vacío... lo que hice fué borrarlos, no se si a ti te son útiles. Entonces, lo que hace el código es SELECCIONAR DE LA TABLA INTERNA t_pedidos DONDE bstnk ESTÁ VACÍO Y BORRARLOS.

Como te digo, la forma que se me ocurrió para hacer lo que tu pedías fué, crear otra tabla interna que me ayudara:

t_ped_tmp

En la tabla de ayuda borré duplicados, porque, lo que quiero hacer es, buscar duplicados en la tabla t_pedidos, si tuviera registros duplicados en la tabla auxiliar no podría hacerlo tardaría mucho más...

Entonces, ya al final en t_ped_tmp solo tendré registros que no se repiten...

Entonces hago un recorrido a t_ped_tmp, busco cada registro que tengo (los cuales son unicos, no se repiten) en la tabla t_pedidos. Si lo encuentra una vez veces valdrá 1, si lo encuentra una vez no nos sirve, entonces lo buscamos y lo borramos:

if veces = 1.
LOOP AT t_pedidos
WHERE bstnk = t_ped_tmp-bstnk.
DELETE t_pedidos.
ENDLOOP.

Al final la tabla t_pedidos solo cuenta con registros que se repiten 2 o más veces...

Espero que te haya servido un poco mi explicación...



Yo también soy nuevo en Abap y pues, también mi forma de resolver este tipo de cosas es muy... básica, por eso digo que bien puede solucionarse de una mejor manera...
Responder Con Cita