INNER JOIN..lo tengo bién???

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Driau
    Senior Member
    • ago
    • 235

    #1

    INNER JOIN..lo tengo bién???

    Hola a todos, estoy intentando realizar un INNER JOIN..pero nada.

    Creo que no voy demasiado desencaminado. He puesto lo siguiente:

    SELECT AUFNR PLNBEZ GAMNG GLTRS GSTRS
    INTO CORRESPONDING FIELDS OF TABLE IT_AFKO
    FROM AFKO
    INNER JOIN M_MAT1T
    ON M_MAT1T~MTART = 'ZACC'
    WHERE GSTRS IN S_DATUM.


    La intención es que me seleccione todos los campos de la 1a linea de la tabla AKFO y los meta en IT_AFKO siempre y cuando se cumpla que el tipo de material de cada OF (orden de fabricacion) se un ZACC y la fecha (contenida en la tabla AFKO) se encuentre dentro del rango s_datum.

    Gracias a todos!
  • DavidXD_XD
    Moderator
    • ago
    • 1255

    #2
    Hola Driau, te comento sobre la sentencia Select con INNER JOIN, en "ON" es para comparar los 2 campos en comun entre las 2 tablas, y en WHERE viene las codiciones individuales

    SELECT AUFNR PLNBEZ GAMNG GLTRS GSTRS
    INTO CORRESPONDING FIELDS OF TABLE IT_AFKO
    FROM AFKO
    INNER JOIN M_MAT1T
    ON M_MAT1T~campo1 = AFKO~campo1
    AND M_MAT1T~campo2 = AFKO~campo2
    WHERE AFKO~GSTRS IN S_DATUM
    AND M_MAT1T~MTART = 'ZACC'.

    Campo1 y Campo2 son 2 campos en comun que tienen esas 2 tablas x ejm, lo pongo asi xq no tengo acceso a SAP , espero te sirva ....
    David Carballido Córdova

    Comentario

    • larmadovr
      Member
      • ene
      • 77

      #3
      Que tal amigo:

      Para hacer un inner join debes tener llaves con las cuales ligas las tablas. En el caso de M_MAT1T es una vista y no estoy seguro de que se pueda hacer la relación que quieres, por que no encuentro con que campo ligarla.

      Te voy a pasar un ejemplo de un inner join:

      SELECT mara~bismt
      keko~werks
      keko~kalnr
      keko~matnr
      keph~kst001
      keph~kst002
      keph~kst003
      keph~kst004
      keph~kst005
      keph~kst006
      keph~kst007
      keph~kst008
      keph~kst009
      keph~kst010
      keph~kkzst
      makt~maktx
      INTO TABLE ti_serv_costes
      FROM keko INNER JOIN mara
      ON keko~matnr EQ mara~matnr " Se ligan llave vs llave
      INNER JOIN keph
      ON keko~kalnr EQ keph~kalnr
      INNER JOIN makt
      ON keko~matnr EQ makt~matnr
      WHERE mara~matnr IN s_matnr
      AND keko~werks EQ p_centro
      AND keph~kkzst EQ ''.

      Dame más detalles para poder ayudarte.

      Hay otras maneras de poder realizar ese trabajo. Pasame una descripcion del requerimiento que te pidieron. Yo estoy al pendiente para solucionarlo.

      Saludos...
      I.S.C.T. Luis Armando Valdez Rodríguez
      Consultor ABAP
      correo: larmandovr@hotmail.com
      cel: (045) 5537406023

      "La vida premia la acción"

      Comentario

      • bacha
        Member
        • dic
        • 53

        #4
        Compañero, te dejo un ejemplo de una consulta INNER JOIN entre dos tablas, si tienes alguna duda, me lo comentas


        select spfli~countryfr spfli~cityfrom spfli~airpfrom spfli~countryto
        spfli~cityto sflight~fldate sflight~price sflight~currency
        sflight~planetype sflight~seatsmax sflight~seatsocc
        into corresponding fields of table it_salida
        from spfli
        inner join sflight
        on spfli~carrid = sflight~carrid
        and spfli~connid = sflight~connid
        where spfli~connid in connid
        and spfli~carrid in carrid.


        1. seleccionas los campos de las dos tablas... los que quieras obtener de ellas.

        2. en tu tabla interna

        3.de que tabla

        4. con que otra tabla haras la relacion

        5. que tus campos llaves sean iguales (depende la logiica, segun lo que quieras obtener)

        6. y por ultimo que los campos que necesitas sean iguales a los de tu parameters o select-options.

        Saludos.
        Editado por última vez por bacha; 19/02/2008, 21:13:51.

        Comentario

        • DavidXD_XD
          Moderator
          • ago
          • 1255

          #5
          Hola de nuevo, yo tambien te dejo uno con varias tablas .... ahi hay algo nuevo como una especie de etiqueta que se le coloca a una tabla .... mara AS a, afko AS b .... a y b harian el papel de mara y afko respectivamente para este ejem.

          SELECT b~aufnr b~rsnum b~werks d~lgort a~rspos
          a~matnr a~charg a~bdmng a~meins e~lgpla AS lgpla_d
          INTO CORRESPONDING FIELDS OF TABLE gt_aufnr
          FROM resb AS a INNER JOIN caufv AS b ON a~rsnum = b~rsnum
          AND a~aufnr = b~aufnr
          INNER JOIN rkpf AS c ON a~rsnum = c~rsnum
          INNER JOIN afpo AS d ON a~aufnr = d~aufnr
          INNER JOIN mlgt AS e ON a~matnr = e~matnr
          INNER JOIN mara AS f ON a~matnr = f~matnr
          WHERE b~aufnr IN s_aufnr
          AND b~auart IN s_auart
          AND b~gstrs IN s_gstrs
          AND b~werks IN s_werks
          AND d~lgort EQ p_lgort
          AND d~posnr EQ c_posnr
          AND a~kzear EQ space
          AND a~charg NE space
          AND a~bdmng NE space
          AND e~lgnum EQ c_lgnum
          AND e~lgtyp EQ c_100
          AND f~mtart IN ('CONC','MPCL','BULK').

          Espero tambien te sirva ...
          David Carballido Córdova

          Comentario

          • golden_fbi
            Junior Member
            • sep
            • 17

            #6
            Hola disculpa y si quisiera que me trajera otros campos de una tabla a la que se le hizo el inner join pero no tiene el mismo campo la otra tabla con la que se une? por ejemplo


            alumnos con sus materias correspondientes.

            - mi tabla panel asocia que alumnos van con que materias, nada mas tiene el campo de idalumno y idmateria.

            -hago su inner join y cuando le doy a mi programa buscar, me encuentra que idalumno va con que idmateria.

            -¿ pero como le hago para saber en esa misma busqued que aparte de que me despliegue que alumno va con que materia , tambien me saque el nombre del alumno y ese campo de alumno esta contendio en la tabla de alumno.?

            Muchas gracias

            Comentario

            Trabajando...