Instruccion Sql

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • johava
    Member
    • abr
    • 79

    #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
  • pmarinab
    Member
    • abr
    • 64

    #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.

    Comentario

    • robert_milan
      Senior Member
      • jun
      • 315

      #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.
      Editado por última vez por robert_milan; 04/06/2008, 15:51:24. Razón: Explicacion del codigo
      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.

      Comentario

      Trabajando...