Left Join me duplica registros
Publicado por Gustavo Arauz (2 intervenciones) el 21/10/2010 06:14:08
Por favor quien me puede aclarar porque la siguiente consulta me duplica los registros. Inclusive con resultados incorrectos.
Son 2 tablas independientes, con una la llave para relacionarlas cod_usua y usua (tienen diferente nombre pero el mismo formato.
La idea es agregar a la tabla B470 la información de los campos usu.nomusua, usu.ag_caic, usu.proc_caic, usu.caic. Sin agregar ningún registro, Solo si la tabla USU contiene el código o llave de USUA, agregar la información a B470. Si no existe el código de usuario que se agregue la información con BLANK's.
Lo extraño es que normalmente el mismo tipo de consulta en otras Tablas sin problema. Hasta ahora en solo estas 2 Tablas no me está produciendo el resultado esperado.
SELECT ;
B470.ordEN, B470.accion,;
B470.cod_usua, B470.nom_usua, ;
B470.tipo,b470.cod_movi,B470.mov1,B470.mov2,B470.kmov, ;
B470.central, ;
B470.a, B470.distrito, B470.telefono, ;
B470.nombre,B470.ced, B470.zona, ;
B470.kfentr, B470.kfsal, B470.dur_acc, ;
B470.kacc, ;
usu.nomusua, usu.ag_caic, usu.proc_caic, usu.caic ;
FROM B470 ;
LEFT OUTER JOIN usu ;
ON (alltrim(cod_usua) = alltrim(usua)) ;
ORDER BY B470.ordEN,B470.TIPO, B470.kfentr, B470.accion
Que puedo estar haciendo mal? o Hay otra forma mejor de obtener el resultado esperado?.
Gracias de antemano,
Gustavo Arauz
Son 2 tablas independientes, con una la llave para relacionarlas cod_usua y usua (tienen diferente nombre pero el mismo formato.
La idea es agregar a la tabla B470 la información de los campos usu.nomusua, usu.ag_caic, usu.proc_caic, usu.caic. Sin agregar ningún registro, Solo si la tabla USU contiene el código o llave de USUA, agregar la información a B470. Si no existe el código de usuario que se agregue la información con BLANK's.
Lo extraño es que normalmente el mismo tipo de consulta en otras Tablas sin problema. Hasta ahora en solo estas 2 Tablas no me está produciendo el resultado esperado.
SELECT ;
B470.ordEN, B470.accion,;
B470.cod_usua, B470.nom_usua, ;
B470.tipo,b470.cod_movi,B470.mov1,B470.mov2,B470.kmov, ;
B470.central, ;
B470.a, B470.distrito, B470.telefono, ;
B470.nombre,B470.ced, B470.zona, ;
B470.kfentr, B470.kfsal, B470.dur_acc, ;
B470.kacc, ;
usu.nomusua, usu.ag_caic, usu.proc_caic, usu.caic ;
FROM B470 ;
LEFT OUTER JOIN usu ;
ON (alltrim(cod_usua) = alltrim(usua)) ;
ORDER BY B470.ordEN,B470.TIPO, B470.kfentr, B470.accion
Que puedo estar haciendo mal? o Hay otra forma mejor de obtener el resultado esperado?.
Gracias de antemano,
Gustavo Arauz
Valora esta pregunta


0