Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Consulta Access a Informix

Estas en el tema de Consulta Access a Informix en el foro de Bases de Datos General en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 17/01/2005, 12:49
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 10 meses
Puntos: 146
Consulta Access a Informix

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...... )

Última edición por Myakire; 17/01/2005 a las 12:53
  #2 (permalink)  
Antiguo 07/02/2005, 17:04
 
Fecha de Ingreso: enero-2005
Mensajes: 5
Antigüedad: 19 años, 9 meses
Puntos: 0
te recomiendo que no uses outer. separa el query en varios querys, puedes usar tablas temporales para pasar datos entre cada consulta.

Saludos,

Crisx
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:37.