Comparar todos los campos de 2 tablas iguales

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • guachilipu
    Junior Member
    • dic
    • 20

    #1

    Comparar todos los campos de 2 tablas iguales

    Buenas,
    Alguien me podría orientar sobre como comparar todos los campos de 2 tablas que son iguales?
    La cosa seria:
    loop at t_s610.
    select * from s604
    where s604 = t_s610 (aquí hacer la comparación).
    endselect.
    endloop.

    No hay otra manera que no sea ir campo por campo?
    Saludos.
  • mysmb2
    Senior Member
    • ene
    • 406

    #2
    proba pasar la tabla a otra temporal y asi comparas entre dos temporales.

    un ejemplo:

    tables bkpf.

    data: begin of t_bkpf occurs 0.
    include structure bkpf.
    data: end of t_bkpf.

    data: begin of t_2bkpf occurs 0.
    include structure bkpf.
    data: end of t_2bkpf.

    select * from bkpf into table t_2bkpf.


    if t_bkpf[] = t_2bkpf[].
    write 'iguales'.
    else.
    write 'distintas'.
    endif.
    Sebastián Chiavia
    http://www.programacionabap.com.ar

    Comentario

    • K-MUS
      Member
      • feb
      • 87

      #3
      Originalmente publicado por guachilipu
      Buenas,
      Alguien me podría orientar sobre como comparar todos los campos de 2 tablas que son iguales?
      La cosa seria:
      loop at t_s610.
      select * from s604
      where s604 = t_s610 (aquí hacer la comparación).
      endselect.
      endloop.

      No hay otra manera que no sea ir campo por campo?
      Saludos.
      Nunca pongas Select dentro de un loop.

      Comentario

      • guachilipu
        Junior Member
        • dic
        • 20

        #4
        Originalmente publicado por K-MUS
        Nunca pongas Select dentro de un loop.
        Por que?
        Saludos!

        Comentario

        • juantulian
          Junior Member
          • oct
          • 5

          #5
          Originalmente publicado por guachilipu
          Por que?
          Saludos!
          Porque es antiperformante. Te conviene usar SELECT SINGLE dentro de un LOOP. Además tendrías que siempre es mejor pasar las tablas transparentes a tablas internas para procesarlas ya que es más rápido trabajar en memoria que acceder a la base de datos muchas veces.

          Comentario

          Trabajando...