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 |
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. |
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. |
Husos Horarios son GMT. La hora en este momento es 15:31:57. |
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web