#1
|
||||
|
||||
Ayuda con registros duplicados
Hola gente, pues traigo esta leve duda, yo estaba creando un programa para extraer registros duplicados de una tabla, bien pues un bro de aquí me alivianó y me dió una solución, estubo bien pero tardaba en sacar todos los registros, ahora me ayudaron a crear este que voy a mostrar acontinuación, pero me falta algo, bien explico, este programa extrae todos los registros duplicados del campo bstnk, que es la clave del pedido, ok pues hay otra tabla la cual contiene un campo que dice el motivo por el que se rechazó ese pedido, pues yo lo que quiero es que si por ejemplo un pedido se repite ocho veces y uno de esos tiene motivo de rechazo, excluirlo y ahora mostrar solo 7 registros repetidos, no sé si me de a entender...
Eh pensado en crearlo con un loop pero no me sale pero bueno espero su ayuda, gracias! ************************************************** ********************** * TABLAS ************************************************** ********************** TABLES: vbak, vbap. ************************************************** ********************** * ESTRUCTURAS ************************************************** ********************** DATA: BEGIN OF t_pedidos OCCURS 0, vbeln LIKE vbak-vbeln, "REFERENCIA bstnk LIKE vbak-bstnk, "CLAVE PEDIDO ernam LIKE vbak-ernam, "NOMBRE audat LIKE vbak-audat, "FECHA abgru LIKE vbap-abgru, "MOTIVO RECHAZO END OF t_pedidos. DATA: BEGIN OF t_clavesAux OCCURS 0, bstnk LIKE vbak-bstnk, "CLAVE PEDIDO Numreg TYPE i, END OF t_clavesAux. Data: t_claves LIKE STANDARD TABLE OF ZTSD_PEDUP, wa_claves LIKE LINE OF t_claves. START-OF-SELECTION. DELETE FROM ZTSD_PEDUP. IF sy-subrc EQ 0. SELECT vbak~bstnk "CLAVE DEL PEDIDO count( * ) As Numreg FROM vbak INTO TABLE t_clavesAux WHERE vbak~bstnk NE '' Group BY bstnk HAVING count( * ) GT 1. LOOP AT t_clavesAux INTO wa_aux. wa_claves-bstnk = wa_aux-bstnk. wa_claves-NumReg = wa_aux-NumReg. APPEND wa_claves TO t_claves. ENDLOOP. INSERT ZTSD_PEDUP FROM TABLE t_claves. SELECT DISTINCT vbeln bstnk ernam audat FROM vbak INTO TABLE t_pedidos WHERE bstnk IN ( SELECT bstnk FROM ZTSD_PEDUP ). ENDIF. Úlima edición por stormshadow fecha: 18/06/08 a las 16:11:45. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|