|
#1
|
|||
|
|||
Instruccion Sql
Hola tengo dos tablas FMIOI (tabla de rpc) y LFA1 (tabla de acreedores), necesito leer la tabla FMIOI y que con base en el campo CODIGO DEL ACREEDOR de esta tabla (LIFRN) lea la tabla LFA1 y extraiga su nombre (campo name1).
Actualmente tengo el siguiente codigo. Select * from FMIOI WHERE REFBN = NRPC AND GJAHR = VIGRPC. Select single NAME1 LIFNR from LFA1 into (NOMBEN, CODBEN) WHERE LIFNR = FMIOI-LIFNR. COMO LO PUEDO HACER MAS EFICIENTE? NOTA: la idea es no hcaer select * from tabla, dado que la tabla tiene muchos campos y realmente solo requiero algunos. GRACIAS POR LA COLABORACION |
#2
|
|||
|
|||
Lo mas eficiente es una JOIN:
SELECT (los campos que quieras) INTO (donde quieras) FROM FMIOI JOIN LFA1 ON FMIOI~LIFNR = LFA1~LIFNR WHERE FMIOI~REFBN = NRPC AND FMIOI~GJAHR = VIGRPC. |
#3
|
||||
|
||||
Correcto!!!!
la tabla interna itab
sera de la siguiente manera: data: begin of itab occurs 0, lifnr like fmioi-lifnr, ***aqui iran mas campoos, end of itab. data: begin of itab2 occurs 0, lifnr like LFA!-lifnr, name1 like lfa1-name1, end of itab2. Select lifnr into table itab from FMIOI WHERE REFBN = NRPC AND GJAHR = VIGRPC. Select lifnr name1 into table itab2 from LFA1 for all entries of itab " Aqui le digo que me traiga todas las coincidencias de ITAB" WHERE LIFNR = itab-LIFNR. con esto todo lo harias en memoria loop at itab. " le haces el loop para recorrer la tabla 1 read table itab2 with key lifnr = itab-lifnr. " veo el nombre del acredor endloop. espero te sirva.
__________________
Un Huevon No Inútil Solo di lo que piensas, a la mejor tienes la mejor respuesta.... Si alguien ya lo hizo, copialo y cambiale las variables total es un codigo nuevo..... Si SAP lo hace se puede hacer, no me pidas hacer algo que SAP no ha hecho..... Consultor FI jr/ABAP Sr. Úlima edición por robert_milan fecha: 04/06/08 a las 15:51:24. Razón: Explicacion del codigo |
Herramientas | Buscar en Tema |
Desplegado | |
|
|