PDA

Ver la Versión Completa : Problema con una SELECT INNER JOIN


Alatz
27/05/09, 16:05:58
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.

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.

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.