#1
|
|||
|
|||
duda sobre select
Hola a todos,
Mi duda es como podia comparar los campos de una tabla interna con una tabla de diccionario y modificar los registros de la tabla de diccionario que se ajustan a esa compracion. supongo que seria mediante un select de forma que puedira recorrer las dos tablas. me podeis mostrar un ejemplo.. Gracias. Un saludo. |
#2
|
|||
|
|||
Buenas.
No entiendo muy bien lo que quieres hacer pero te recomiendo que para la comprobacion en la select utilices un SELECT SINGLE * INTO CORRESPONDING FIELDS OF it_usr21 FROM usr21 WHERE bname = it_usr02-bname. Ya que sino la performance puede bajar mucho. Para modificar una tabla del diccionario entiendo que quieres hacer un MODIFY. Todas estas sentencias y como se usan las puedes ver en la ayuda se SAP. Poniendo el comando y pulsando F1. Espero haberte orientado un poco. Saludos. |
#3
|
||||
|
||||
Hola,
si te he entendido bien deberías hacer algo parecido a esto: LOOP AT it_tab. * Comprobamor la existencia del registro en la tabla del diccionario SELECT COUNT( * ) FROM tabla_diccionario WHERE campo1 = it_tab-campo1 AND campo2 = it_tab-campo2 AND campo3 = it_tab-campo3. * Si existe lo modificas IF sy-subrc EQ 0. MODIFY tabla_diccionario FROM it_tab. ENDIF. ENDLOOP. Ten en cuenta que este código es lento si la tabla interna tiene muchos registros. La tabla interna debe tener cabecera para poder hacer el modify así. El select tienes que hacerlo utilizando el mayor número de campos clave( si no todos) para evitar incoherencias a la hora de modificar. Espero que te sirva. Un saludo. |
#4
|
||||
|
||||
También podrías usar un SELECT con un FOR ALL ENTRIES.
Saludos, David. |
#5
|
|||
|
|||
Gracias a todos por vuestra ayuda, me ha sido de gran utilidad.
un saludo a todos |
Herramientas | Buscar en Tema |
Desplegado | |
|
|