PDA

Ver la Versión Completa : Ayuda con query left outter join


27psiBOOM
02/07/08, 18:48:56
Espero que alguien me pueda ayudar, aquí explico mi problema

Requiero hacer una consulta que me muestre todos los registros de la tabla EBAN en donde el código de artículo no exista en la tabla RESB y filtrando los materiales con status y posiciones borradas.

Al final lo que necesito es un listado de solped generadas que no tengan reservas.

Estoy usando la condición left outer en la tabla EBAN qu está al lado izquierdo y la tabla RESB al lado derecho haciendo join a través del campo MATNR pero la query solo me devuelve los registros en donde el campo MATNR coincide en lugar de mostrarme todos los datos de EBAN y con campos vacios en caso el MATNR no exista en la tabla RESB

Espero que alguien pueda ayudarme :confused:

cvargas
02/07/08, 22:14:12
Yo realice un SELECT similar pero en otras tablas

SELECT m~MATNR s~LBKUM
from ( MSEG as m LEFT JOIN MBEWH as s
ON m~MATNR EQ s~MATNR
AND ( s~LFGJA EQ 2007 and s~LFMON EQ 5 ) )


Lo que hace este select es devolver todas los materiales que
se encuentran en la tabla MSEG y los stocks de la tabla MBEWH
( Si es que estos existieran en el Mes de Mayo del Año 2007 )


Espero te pueda servir

Carlos


Espero que alguien me pueda ayudar, aquí explico mi problema

Requiero hacer una consulta que me muestre todos los registros de la tabla EBAN en donde el código de artículo no exista en la tabla RESB y filtrando los materiales con status y posiciones borradas.

Al final lo que necesito es un listado de solped generadas que no tengan reservas.

Estoy usando la condición left outer en la tabla EBAN qu está al lado izquierdo y la tabla RESB al lado derecho haciendo join a través del campo MATNR pero la query solo me devuelve los registros en donde el campo MATNR coincide en lugar de mostrarme todos los datos de EBAN y con campos vacios en caso el MATNR no exista en la tabla RESB

Espero que alguien pueda ayudarme :confused:

danny
03/07/08, 15:20:30
Holas;
yo lo haria obteniendo 2 tablas internas

*los registros de eban x las condiciones k necesites
SELECT *
INTO TABLE T_1
FROM EBAN
WHERE MATNR = CONDICION1.

*los registro de resb solo los materiales k se obtuvieron en eban
SELECT *
INTO TABLE T_2
FROM RESB
FOR ALL ENTRIES IN T_1
WHERE MATNR = T_1-MATNR and
XLOEK = tu condicion.

*luego me barro la interna de eban y elimino las k estan en la interna de resb.
LOOP AT T_1.
READ TABLE T_2 WITH KEY MATNR = T_1-MATNR.
IF SY-SUBRC = 0.
BORRAS EL REGISTRO.
ENDIF.
ENDLOOP.

es una idea k espero te pueda servir,
Saludos;