Hola Alejandro
Como estructura de uno de los planes, tenemos la imagen que te paso en adjunto.
Esta consulta:
SELECT * FROM sga_elementos se WHERE elemento = 859;
devuelve lo siguiente:
[tr]
[td]elemento [/td][td] nombre[/td][td] nombre_abreviado[/td][td] codigo[/td][td] entidad_subtipo[/td][td] entidad[/td][td] compartible[/td][td] estado[/td][td] disponible_para[/td]
[/tr][tr]
[td]859[/td][td] Area única[/td][td] Area única[/td][td] 1[/td][td] 6[/td][td] 115.619[/td][td] N[/td][td] A[/td][td] T[/td]
[/tr]
Es decir que como debería tomar el elemento 859??
Si es así, esta consulta que indicás no devuelve nada, está vacía.
SELECT
-- Datos del módulo
ep_modulo.plan_version,
COALESCE(ep_modulo.nombre, e_modulo.nombre),
e_modulo.codigo,
e_modulo.elemento,
er_modulo.elemento_revision,
-- Datos de las componentes del modulo
e_componente.elemento,
er_componente.elemento_revision,
e_componente.codigo,
COALESCE(ep_componente.nombre, e_componente.nombre),
e_componente.nombre_abreviado,
ep_componente.elemento_plan,
es_componente.entidad_tipo,
e_componente.entidad_subtipo ,
es_componente.nombre,
e_componente.estado,
ep_componente.creditos,
ep_componente.horas_totales,
sga_elementos_comp.puntaje,
sga_elementos_comp.orden
FROM
sga_elementos_plan as ep_modulo
JOIN sga_elementos_revision as er_modulo ON er_modulo.elemento_revision = ep_modulo.elemento_revision
JOIN sga_elementos as e_modulo ON e_modulo.elemento = er_modulo.elemento
JOIN sga_elementos_comp ON sga_elementos_comp.elemento_padre = er_modulo.elemento_revision
JOIN sga_elementos_revision as er_componente ON er_componente.elemento_revision = sga_elementos_comp.elemento_hijo
JOIN sga_elementos as e_componente ON e_componente.elemento = er_componente.elemento
JOIN sga_g3entidades_subtipos as es_componente ON es_componente.entidad_subtipo = e_componente.entidad_subtipo
JOIN sga_elementos_plan as ep_componente ON (ep_componente.plan_version = ep_modulo.plan_version AND ep_componente.elemento_revision = er_componente.elemento_revision)
WHERE
e_modulo.elemento = <ELEMENTO DEL MODULO>
-- er_modulo.elemento_revision = <ELEMENTO_REVISION DEL MODULO
;
Acá es donde deberían estar asociadas las actividades extracurriculares, correcto?
En nuestro caso, como te comentaba, las actividades extracurriculares son siempre dentro de un posible rango prestablecido (que suele tener sus modificaciones, con lo cual aguardamos la posibilidad de poder tratarlas como las genéricas, teniendo la posibilidad de modificar una existente o agregar alguna nueva).
Cómo debo proceder para que queden asociadas al módulo las actividades? O qué proceso fue el que falló en la migración por el cual no quedaron asociadas?
Esta otra consulta que indicás, da error en nombre “act” y en nombres de columnas:
SELECT
-- datos de la actividad extracurricular
act.elemento, act.codigo, act.nombre,
-- datos del area de actividad extracurricular
e_area.elemento, e_area.codigo, e_area.nombre,
aa.subarea, aa.actividad, ae.nombre, aa.puntaje_minimo, aa.puntaje_maximo, cnv_ae.elemento, er.elemento_revision
FROM mig.sga_activ_por_area as aa
JOIN mig.sga_activ_extracur as ae ON (ae.unidad_academica = aa.unidad_academica AND ae.actividad = aa.actividad)
JOIN mig._cnv_pk_elementos as cnv_ae ON (cnv_ae.unidad_academica = ae.unidad_academica AND
cnv_ae.codigo = ae.actividad AND
cnv_ae.tipo = 'ACTIVIDAD_EXT')
JOIN sga_elementos_revision as er ON er.elemento = cnv_ae.elemento
JOIN sga_elementos_comp as ec ON (
-- ec.elemento_padre = cursor_area.elemento_revision AND -- Area extracurricualr
ec.elemento_hijo = er.elemento_revision) -- Actividad extracurricular
JOIN sga_elementos as actividad ON actividad.elemento = er.elemento
JOIN sga_elementos_revision as er_area ON er_area.elemento_revision = ec.elemento_padre
JOIN sga_elementos_revision as e_area ON e_area.elemento = er_area.elemento
-- WHERE aa.unidad_academica = cursor_area.unidad_academica
-- AND aa.area = cursor_area.area
ORDER BY e_area.nombre, aa.subarea, ae.nombre, aa.actividad
Pero si hago SELECT * y descarto el ORDER BY, no devuelve nada.
Por otro lado, esta vez, al migrar con el parámetro actividades_extracur = 1 quedaron las actividades todas cargadas en:
SELECT * FROM sga_elementos WHERE entidad_subtipo = 51
Gracias por la orientación que pudieras darme. Necesitamos poder reconocer los créditos/horas de los alumnos que tienen reconocidos por las actividades extracurriculares.
Saludos
Iris