Hola af1:
Supongo que la consulta debe ser funcional, es decir, está obteniendo lo que quieres, pero la manera en que lo hace dudo que sea la óptima...
Hace algunos días el compañero gnzsoloyo dijo acertadamente:
Cita: Yo te diría que elijas: Un buen SP o una consulta ineficiente. ¿Qué prefieres?
A simple vista estás realizando algunas cosas que no estoy seguro que sean necesarias. Por ejemplo esta subconsulta:
Código:
FROM ((
(SELECT periodos.periodo, suministro_union.id_suministro
FROM periodos, suministro_union) as periodo_suministro
la consulta está realizando un producto cartesiano entre las tablas... esto rara vez es requerido, pero sin el contexto de tus tablas y lo que quieres hacer no podría asegurar.
según lo que observé sólo utilizas 5 tablas (periodos, suministro_union, requerimiento, requerimiento_instancia, distribuidora) pero algunas de ellas están repetidas y contenidas en más de una subconsulta, quizás podrías optimizar también esto.
Saludos
Leo.