Hola compañeros, les pido su colaboración para ayudarme a encontrar en qué estoy fallando al convertir una consulta SQL hecha por el generador de consultas de Access a informix.
La primera es esta:
Código:
SELECT tbscc01.no_empleado, tbscc01.empleado AS clave_presupuestal, tbscc01.nombre, tbscc01.apellido_pat, tbscc01.apellido_mat, tbscc01.activo, tbscc04.Fecha_ingreso, ctscc25.Descripcion AS plaza, ctscc24.Descripcion AS nivel, codificadores.id_puesto
FROM (ctscc25 RIGHT JOIN ((tbscc01 LEFT JOIN tbscc04 ON tbscc01.no_empleado = tbscc04.No_empleado) LEFT JOIN ctscc24 ON tbscc04.Niv_tabular = ctscc24.Niv_tabular) ON ctscc25.Plaza = tbscc04.Plaza) LEFT JOIN codificadores ON tbscc01.no_empleado = codificadores.No_empleado
WHERE (((tbscc01.activo)='t'))
ORDER BY tbscc01.apellido_pat, tbscc01.apellido_mat, tbscc01.nombre;
la he traducido a esta:
Código:
SELECT Tbscc01.no_empleado, Tbscc01.nombre, Tbscc01.empleado clave_presupuestal, Tbscc01.apellido_pat, Tbscc01.apellido_mat, Tbscc01.activo, Tbscc04.fecha_ingreso, Ctscc25_1.descripcion plaza, Codificadores.id_puesto, Ctscc24.descripcion nivel
FROM tbscc01 Tbscc01, OUTER (tbscc04 Tbscc04, codificadores Codificadores, OUTER ctscc25 Ctscc25_1, OUTER ctscc24 Ctscc24)
WHERE (Tbscc01.no_empleado = Tbscc04.no_empleado)
AND (Tbscc04.plaza = Ctscc25_1.plaza)
AND (Tbscc04.niv_tabular = Ctscc24.niv_tabular)
AND (Codificadores.no_empleado = Tbscc01.no_empleado)
AND (Tbscc01.activo = 't')
e inclusive en otros intentos llegué a esta:
Código:
SELECT Tbscc01.no_empleado, Tbscc01.nombre, Tbscc01.empleado clave_presupuestal, Tbscc01.apellido_pat, Tbscc01.apellido_mat, Tbscc01.activo, Tbscc04.fecha_ingreso, Ctscc25_1.descripcion plaza, Codificadores.id_puesto, Ctscc24.descripcion nivel
FROM tbscc01 Tbscc01
LEFT OUTER JOIN tbscc04 Tbscc04
ON (Tbscc01.no_empleado = Tbscc04.no_empleado)
RIGHT OUTER JOIN codificadores Codificadores
ON (Codificadores.no_empleado = Tbscc01.no_empleado)
LEFT OUTER JOIN ctscc25 Ctscc25_1
ON (Tbscc04.plaza = Ctscc25_1.plaza)
LEFT OUTER JOIN ctscc24 Ctscc24
ON (Tbscc04.niv_tabular = Ctscc24.niv_tabular)
WHERE Tbscc01.activo = 't'
Si por aca en el foro hay alguien muy trucha en informix, que me pudiera decir si hay algo que estoy omitiendo, le agradecería bastante.
PD. Las consultas no marcan error de sintaxis, pero regresan menos registros de los esperados. Especificamente al agregar a la relación la tabla Codificadores.
(y pensar que son decenas de consultas las que tengo que migrar......

)