#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! |
#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 |
#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... |
#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. Úlima edición por bacha fecha: 19/02/08 a las 21:13:51. |
#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 |
#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 |
Herramientas | Buscar en Tema |
Desplegado | |
|
|