MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Problema con una SELECT INNER JOIN (foro/showthread.php?t=30392)

Alatz 27/05/09 16:05:58

Problema con una SELECT INNER JOIN
 
Hola,
Vereis, tengo la siguiente SELECT INNER JOIN:

SELECT e~kunnr e~name1 e~name2 e~stras p~ort01 e~land1 e~pstlz p~name1
INTO TABLE t_cliente_aux
FROM kna1 AS e INNER JOIN knvk AS p
ON e~kunnr = p~kunnr
FROM knvk AS p INNER JOIN knvv AS r
ON p~kunnr = r~kunnr
WHERE r~vkorg IN pi_org_ventas
AND r~spart IN pi_sector
AND e~kunnr IN pi_codigo.


El compilador me da el siguiente error: "Wrong expresion FROM in FROM clause..."

Alguno podría decirme qué es lo que puede estar fallando en mi SELECT?? no es necesario poner paréntesis, no?

Espero vuestra ayuda.
Muchas gracias de antemano.

luis999 27/05/09 16:12:51

Creo que debería ser asi tu sentencia::)
SELECT e~kunnr e~name1 e~name2 e~stras p~ort01 e~land1 e~pstlz p~name1
INTO TABLE t_cliente_aux
FROM kna1 AS e INNER JOIN knvk AS p
ON e~kunnr = p~kunnr
INNER JOIN knvk AS p INNER JOIN knvv AS r
ON p~kunnr = r~kunnr
WHERE r~vkorg IN pi_org_ventas
AND r~spart IN pi_sector
AND e~kunnr IN pi_codigo.



negrogho 27/05/09 16:21:36

Hola Alatz

la seleccion correcta debe ser

SELECT e~kunnr e~name1 e~name2 e~stras p~ort01 e~land1 e~pstlz p~name1
INTO TABLE t_cliente_aux
FROM kna1 AS e INNER JOIN knvk AS p
ON e~kunnr = p~kunnr
inner join knvk AS k
ON k~kunnr = e~kunnr
INNER JOIN knvv AS r
ON r~kunnr = e~kunnr

WHERE r~vkorg IN pi_org_ventas
AND r~spart IN pi_sector
AND e~kunnr IN pi_codigo.

cada Inner join debera llevar su relacion ON con las tablas anteriories

pero no es muy recomendable enlazar tantas tablas con el Inner join por cuestiones de performance

saludos
;)

negrogho 27/05/09 16:26:56

ups perdon ja ja ja

no me di cuenta que la segunda y tercera tabla eran la misma esta es la expresion correcta

SELECT e~kunnr e~name1 e~name2 e~stras p~ort01 e~land1 e~pstlz p~name1
INTO TABLE t_cliente_aux
FROM kna1 AS e INNER JOIN knvk AS p
ON e~kunnr = p~kunnr
INNER JOIN knvv AS r
ON r~kunnr = e~kunnr

WHERE r~vkorg IN pi_org_ventas
AND r~spart IN pi_sector
AND e~kunnr IN pi_codigo.

saludos :p

camaron 27/05/09 16:34:32

HOLA ALATZ:

estas usando dos veces la palabra reservada FROM en un inner join y ese es tu error..... tu buesqueda quedaria asi:

SELECT e~kunnr e~name1 e~name2 e~stras p~ort01 e~land1 e~pstlz p~name1
INTO TABLE t_cliente_aux
FROM kna1 AS e INNER JOIN knvk AS p
ON e~kunnr = p~kunnr
INNER JOIN knvv AS r
ON p~kunnr = r~kunnr
WHERE r~vkorg IN pi_org_ventas
AND r~spart IN pi_sector
AND e~kunnr IN pi_codigo.

Alatz 28/05/09 08:37:35

Muchas gracias.
Me estaba basando en un ejemplo que en teoría compilaba bien, y al parecer no era así.
Asunto resuelto.


Husos Horarios son GMT. La hora en este momento es 03:23:10.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web