Tengo que generar una vista desde tres vistas A, B y C con inner joins de la
siguiente forma:
on AID1 = B.ID1;
on B.ID2 = C.ID2 and B.ID3 = C.ID3 &&Este es un índice compuesto
el problema es que no puedo guardar cuando genero el join con los dos campos
entre la tabla B y la C. En un principio no genera correctamente la consulta
pues omite una de las tablas involucradas en los joins. Luego de cambiar el
orden de los joins y de los ANDs en el diseñador, logré una consulta que si
copio y la ejecuto en la ventana de comandos funciona correctamente, pero al
intentar guardar informa del siguiente error (***):
"Query Parse Error - try rebuilding in Query Wizard or by using View
Designer Join Tab"
La consulta con todos los datos tal cual la veo en la ventana de SQL, la
copio y la ejecuto sin problemas en la ventana de comandos es:
SELECT Vprotocolos.id_protocolo, Vprotocolos.fecha,;
Vprotocolos.id_medico, Vprotocolos.medico, Vprotocolos.id_hc,;
Vprotocolos.paciente, Vprotocolos.id_mutual, Vprotocolos.id_plan;
FROM icmv!vplangrupofac INNER JOIN icmv!vprotocolos;
INNER JOIN icmv!vmutperiodos ;
ON Vmutperiodos.id_mutual = Vplangrupofac.id_mutual ;
ON Vplangrupofac.id_mutual = Vprotocolos.id_mutual;
AND Vplangrupofac.id_plan = Vprotocolos.id_plan
Por otro lado, genero el join desde la parte superior del diseñador,
arrastrando los campos entre B y C, lo que hace es generar un join
adicional, que funciona, pero: ¿no está seleccionando la misma tabla dos
veces produciendo una pérdida en el desempeño? En este último caso el
generador genera:
SELECT Vprotocolos.id_protocolo, Vprotocolos.fecha,;
Vprotocolos.id_medico, Vprotocolos.medico, Vprotocolos.id_hc,;
Vprotocolos.paciente, Vprotocolos.id_mutual, Vprotocolos.id_plan;
FROM icmv!vplangrupofac INNER JOIN icmv!vprotocolos;
INNER JOIN icmv!vplangrupofac;
INNER JOIN icmv!vmutperiodos ;
ON Vmutperiodos.id_mutual = Vplangrupofac.id_mutual ;
ON Vplangrupofac.id_plan = Vprotocolos.id_plan ;
ON Vplangrupofac.id_mutual = Vprotocolos.id_mutual
es decir: la tabla vPlanGrupoFac está incluida dos veces en los joins!!
Otra alternativa que probé es generar la combinación "sobrante" entre
ID_Plan en la solapa de filtro. La genera perfectamente, pero no funciona!!!
Me quiero morir!!! (era un chiste, no es para tanto)
Agradezco a todo el que pueda aproximarme a una solución.
Jorge Ortalli
Leer las respuestas