Query optimizado sin función de fechas_clase.

This commit is contained in:
Your Name
2025-03-05 07:17:24 -06:00
parent f35185e29e
commit 8853b35b09
3 changed files with 41 additions and 31 deletions

View File

@@ -22,22 +22,16 @@ $profesor_clave = isset($params['profesor'])
$data = $db->query(
"WITH fechas AS (
SELECT fechas_clase(
_horario_id => h.horario_id,
_todos => false,
_fecha_inicio => :fecha_inicio,
_fecha_fin => :fecha_fin
) AS registro_fecha_ideal, h.horario_id
FROM horario h WHERE horario_id IN ({$_SESSION['horarios']})
SELECT generate_series(:fecha_inicio, :fecha_fin, '1 day'::INTERVAL)::DATE AS registro_fecha_ideal
)
SELECT
fechas.registro_fecha_ideal,
profesor_clave,
profesor_nombre,
COALESCE(materia_asignacion.materia_asignacion_profesor, profesor.profesor_nombre) AS profesor_nombre,
profesor_correo,
facultad_nombre,
materia_nombre,
carrera_nombre,
COALESCE(materia_asignacion.materia_asignacion_materia, materia.materia_nombre) AS materia_nombre,
COALESCE(materia_asignacion.materia_asignacion_carrera, carrera.carrera_nombre) AS carrera_nombre,
horario_grupo,
horario_hora,
horario_fin,
@@ -52,14 +46,16 @@ $data = $db->query(
comentario,
justificacion
FROM horario
NATURAL JOIN fechas
NATURAL JOIN horario_profesor
NATURAL JOIN profesor
JOIN fechas ON EXTRACT(DOW FROM fechas.registro_fecha_ideal) = horario_dia
NATURAL JOIN salon_view_mat
NATURAL JOIN facultad
NATURAL JOIN materia
NATURAL JOIN carrera
JOIN facultad ON facultad.facultad_id = COALESCE(horario.facultad_id, 0)
LEFT JOIN materia USING (MATERIA_ID)
LEFT JOIN carrera USING (carrera_id)
LEFT JOIN materia_asignacion USING (horario_id)
LEFT JOIN REGISTRO USING (profesor_id, registro_fecha_ideal, horario_id)
LEFT JOIN usuario ON usuario.usuario_id = REGISTRO.supervisor_id
@@ -70,6 +66,7 @@ $data = $db->query(
(horario_hora, horario_fin)
OVERLAPS
(COALESCE(:bloque_inicio, horario_hora), COALESCE(:bloque_fin, horario_fin))
AND horario_id IN ({$_SESSION['horarios']})
ORDER BY fechas.registro_fecha_ideal, horario_hora",
[
'facultad_id' => $user->facultad['facultad_id'] ?? $params['facultad_id'],