SELECT INTO TABLE sobre tabla interna con datos.

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • kachalot
    Junior Member
    • ene
    • 9

    #1

    SELECT INTO TABLE sobre tabla interna con datos.

    Hola, buenas tardes,


    necesito hacer 2 SELECT..... INTO TABLE sobre la misma tabla interna:


    No es mi caso, pero por ejemplo:

    primero

    SELECT * FROM SFLIGHT INTO CORRESPONDING FIELDS OF TABLE itab1.

    segundo

    SELECT * FROM SBOOK INTO CORRESPONDING FIELDS OF TABLE itab1.

    Imaginaros que se puede y que coinciden claves primarias.

    El segundo SELECT INTO hace un INSERT, MODIFY, APPEND...?
    o DELETE y luedo INSERT, MODIFY, APPEND...?
    Es decir, mantendría los datos del primer SELECT INTO?


    gracias por vuestro tiempo!!
  • mauro_ARG
    Member
    • abr
    • 87

    #2
    Originalmente publicado por kachalot
    Hola, buenas tardes,


    necesito hacer 2 SELECT..... INTO TABLE sobre la misma tabla interna:


    No es mi caso, pero por ejemplo:

    primero

    SELECT * FROM SFLIGHT INTO CORRESPONDING FIELDS OF TABLE itab1.

    segundo

    SELECT * FROM SBOOK INTO CORRESPONDING FIELDS OF TABLE itab1.

    Imaginaros que se puede y que coinciden claves primarias.

    El segundo SELECT INTO hace un INSERT, MODIFY, APPEND...?
    o DELETE y luedo INSERT, MODIFY, APPEND...?
    Es decir, mantendría los datos del primer SELECT INTO?


    gracias por vuestro tiempo!!
    Por que no utilizas un JOIN?.

    Comentario

    • Mauricio Hidalgo
      Senior Member
      • may
      • 481

      #3
      A tu pregunta: El segundo select reemplaza el contenido de itab1 tras el primer select.

      para adicionar registros a los ya existentes seria así:

      SELECT * FROM SFLIGHT INTO CORRESPONDING FIELDS OF TABLE itab1.


      SELECT * FROM SBOOK APPENDING CORRESPONDING FIELDS OF TABLE itab1.


      Saludos

      Comentario

      • kachalot
        Junior Member
        • ene
        • 9

        #4
        No hago JOIN, bueno, LEFT OUTER JOIN, porque las tablas que tengo que utilizar, que no son las de vuelo, pueden contener miles de registros por no decir uno o dos millones. Y creo que si lo hago así, con 3 JOIN, sería poco optimo.

        Probaré con el APPENDING y os comento.


        Muchas gracias Mauricio, mauro por contestar!!

        Comentario

        • mauro_ARG
          Member
          • abr
          • 87

          #5
          Tenes que tener cuidado con el APPENDING, ya que te agrega registros y te puede generar inconsistencias, si lo que queres es s que los registros se combinen entre las dos tablas. Por eso es recomendable utilizar el JOIN, es mas optimo y para eso fue diseñado.

          O sino la otra es usar la sentencia FOR ALL ENTRIES IN itab dentro del select.

          Ahora si lo que queres es tener todos los registros de las dos tablas, entonces lo mejor es tener dos tablas internas separadas.

          Comentario

          • Rodolfo SAP
            Member
            • jun
            • 89

            #6
            Usa un APPENDING

            Si usas los dos select como describes terminaras borrando los datos del primer select.

            Si lo que necesitas es la extracción de ambas tablas bajo la misma llave usa un JOIN.

            Si usas el APPENDING deberas sortear la tabla y eliminar llaves duplicadas o en su caso condensar la informacion y armar una sola linea llave.

            Saludos.

            Comentario

            Trabajando...