Envio el archivo de pos-controles. Actualiza la funcion en la base, ejecutalo y enviá el resultado.
Saludos.
fx_pos_ctrl_equivalencias.sql (11.8 KB)
Envio el archivo de pos-controles. Actualiza la funcion en la base, ejecutalo y enviá el resultado.
Saludos.
fx_pos_ctrl_equivalencias.sql (11.8 KB)
Hola Alejandro
Ahora da otros errores…
Va en adjunto.
Iris
Los dos primeros que dan error estaba mal el control, pero si miras dan iguales los nros de G2 y G3.
El que da diferente es el de las actividades extracurriculares.
¿Estan migrando las actividades extracurriculares como actividades dentro del plan de estudios, no?
Por lo que veo que se esta completando la tabla sga_reconocimiento_act
¿Que resultados dan estas consultas?
1)
SELECT count(*)
FROM mig.sga_resol_activ
JOIN mig.sga_activ_resol ON mig.sga_activ_resol.unidad_academica = mig.sga_resol_activ.unidad_academica AND
mig.sga_activ_resol.resol_actividades = mig.sga_resol_activ.resol_actividades
JOIN mig.sga_activ_alumno ON mig.sga_activ_alumno.unidad_academica = mig.sga_activ_resol.unidad_academica AND
mig.sga_activ_alumno.resol_actividades = mig.sga_activ_resol.resol_actividades AND
mig.sga_activ_alumno.area = mig.sga_activ_resol.area AND
mig.sga_activ_alumno.actividad = mig.sga_activ_resol.actividad AND
mig.sga_activ_alumno.fecha = mig.sga_activ_resol.fecha;
2)
SELECT count(*)
FROM mig.sga_resol_activ
JOIN mig.sga_activ_resol ON mig.sga_activ_resol.unidad_academica = mig.sga_resol_activ.unidad_academica AND
mig.sga_activ_resol.resol_actividades = mig.sga_resol_activ.resol_actividades
JOIN mig.sga_activ_alumno ON mig.sga_activ_alumno.unidad_academica = mig.sga_activ_resol.unidad_academica AND
mig.sga_activ_alumno.resol_actividades = mig.sga_activ_resol.resol_actividades AND
mig.sga_activ_alumno.area = mig.sga_activ_resol.area AND
mig.sga_activ_alumno.actividad = mig.sga_activ_resol.actividad AND
mig.sga_activ_alumno.fecha = mig.sga_activ_resol.fecha
JOIN mig.sga_alumnos_resol ON mig.sga_alumnos_resol.unidad_academica = mig.sga_activ_alumno.unidad_academica AND
mig.sga_alumnos_resol.resol_actividades = mig.sga_activ_alumno.resol_actividades AND
mig.sga_alumnos_resol.carrera = mig.sga_activ_alumno.carrera AND
mig.sga_alumnos_resol.legajo = mig.sga_activ_alumno.legajo
3)
SELECT count(*)
FROM mig.sga_resol_activ
JOIN mig.sga_activ_resol ON mig.sga_activ_resol.unidad_academica = mig.sga_resol_activ.unidad_academica AND
mig.sga_activ_resol.resol_actividades = mig.sga_resol_activ.resol_actividades
JOIN mig.sga_activ_alumno ON mig.sga_activ_alumno.unidad_academica = mig.sga_activ_resol.unidad_academica AND
mig.sga_activ_alumno.resol_actividades = mig.sga_activ_resol.resol_actividades AND
mig.sga_activ_alumno.area = mig.sga_activ_resol.area AND
mig.sga_activ_alumno.actividad = mig.sga_activ_resol.actividad AND
mig.sga_activ_alumno.fecha = mig.sga_activ_resol.fecha
JOIN mig.sga_alumnos_resol ON mig.sga_alumnos_resol.unidad_academica = mig.sga_activ_alumno.unidad_academica AND
mig.sga_alumnos_resol.resol_actividades = mig.sga_activ_alumno.resol_actividades AND
mig.sga_alumnos_resol.carrera = mig.sga_activ_alumno.carrera AND
mig.sga_alumnos_resol.legajo = mig.sga_activ_alumno.legajo
JOIN mig._cnv_pk_elementos as m_act ON m_act.unidad_academica = mig.sga_activ_resol.unidad_academica AND
m_act.codigo = mig.sga_activ_resol.actividad AND
m_act.tipo = 'ACTIVIDAD_EXT'
JOIN sga_elementos as ele ON ele.elemento = m_act.elemento
4)
SELECT count(*)
FROM mig.sga_resol_activ
JOIN mig.sga_activ_resol ON mig.sga_activ_resol.unidad_academica = mig.sga_resol_activ.unidad_academica AND
mig.sga_activ_resol.resol_actividades = mig.sga_resol_activ.resol_actividades
JOIN mig.sga_activ_alumno ON mig.sga_activ_alumno.unidad_academica = mig.sga_activ_resol.unidad_academica AND
mig.sga_activ_alumno.resol_actividades = mig.sga_activ_resol.resol_actividades AND
mig.sga_activ_alumno.area = mig.sga_activ_resol.area AND
mig.sga_activ_alumno.actividad = mig.sga_activ_resol.actividad AND
mig.sga_activ_alumno.fecha = mig.sga_activ_resol.fecha
JOIN mig.sga_alumnos_resol ON mig.sga_alumnos_resol.unidad_academica = mig.sga_activ_alumno.unidad_academica AND
mig.sga_alumnos_resol.resol_actividades = mig.sga_activ_alumno.resol_actividades AND
mig.sga_alumnos_resol.carrera = mig.sga_activ_alumno.carrera AND
mig.sga_alumnos_resol.legajo = mig.sga_activ_alumno.legajo
JOIN mig._cnv_pk_elementos as m_act ON m_act.unidad_academica = mig.sga_activ_resol.unidad_academica AND
m_act.codigo = mig.sga_activ_resol.actividad AND
m_act.tipo = 'ACTIVIDAD_EXT'
JOIN sga_elementos as ele ON ele.elemento = m_act.elemento
JOIN mig._cnv_pk_alumnos as m_alu ON m_alu.unidad_academica = mig.sga_alumnos_resol.unidad_academica AND
m_alu.carrera = mig.sga_alumnos_resol.carrera AND
m_alu.legajo = mig.sga_alumnos_resol.legajo;
5)
SELECT count(*)
FROM mig.sga_resol_activ
JOIN mig.sga_activ_resol ON mig.sga_activ_resol.unidad_academica = mig.sga_resol_activ.unidad_academica AND
mig.sga_activ_resol.resol_actividades = mig.sga_resol_activ.resol_actividades
JOIN mig.sga_activ_alumno ON mig.sga_activ_alumno.unidad_academica = mig.sga_activ_resol.unidad_academica AND
mig.sga_activ_alumno.resol_actividades = mig.sga_activ_resol.resol_actividades AND
mig.sga_activ_alumno.area = mig.sga_activ_resol.area AND
mig.sga_activ_alumno.actividad = mig.sga_activ_resol.actividad AND
mig.sga_activ_alumno.fecha = mig.sga_activ_resol.fecha
JOIN mig.sga_alumnos_resol ON mig.sga_alumnos_resol.unidad_academica = mig.sga_activ_alumno.unidad_academica AND
mig.sga_alumnos_resol.resol_actividades = mig.sga_activ_alumno.resol_actividades AND
mig.sga_alumnos_resol.carrera = mig.sga_activ_alumno.carrera AND
mig.sga_alumnos_resol.legajo = mig.sga_activ_alumno.legajo
JOIN mig._cnv_pk_elementos as m_act ON m_act.unidad_academica = mig.sga_activ_resol.unidad_academica AND
m_act.codigo = mig.sga_activ_resol.actividad AND
m_act.tipo = 'ACTIVIDAD_EXT'
JOIN sga_elementos as ele ON ele.elemento = m_act.elemento
JOIN mig._cnv_pk_alumnos as m_alu ON m_alu.unidad_academica = mig.sga_alumnos_resol.unidad_academica AND
m_alu.carrera = mig.sga_alumnos_resol.carrera AND
m_alu.legajo = mig.sga_alumnos_resol.legajo;
6)
SELECT count(*)
FROM mig._cnv_pk_reconocimiento as cnv_r
JOIN sga_reconocimiento as r ON r.nro_tramite = cnv_r.nro_tramite
JOIN mig.sga_resol_activ ON mig.sga_resol_activ.unidad_academica = cnv_r.unidad_academica AND
mig.sga_resol_activ.resol_actividades = cnv_r.resol_actividades
JOIN mig.sga_activ_resol ON mig.sga_activ_resol.unidad_academica = mig.sga_resol_activ.unidad_academica AND
mig.sga_activ_resol.resol_actividades = mig.sga_resol_activ.resol_actividades
JOIN mig.sga_activ_alumno ON mig.sga_activ_alumno.unidad_academica = mig.sga_activ_resol.unidad_academica AND
mig.sga_activ_alumno.resol_actividades = mig.sga_activ_resol.resol_actividades AND
mig.sga_activ_alumno.area = mig.sga_activ_resol.area AND
mig.sga_activ_alumno.actividad = mig.sga_activ_resol.actividad AND
mig.sga_activ_alumno.fecha = mig.sga_activ_resol.fecha
JOIN mig.sga_alumnos_resol ON mig.sga_alumnos_resol.unidad_academica = mig.sga_activ_alumno.unidad_academica AND
mig.sga_alumnos_resol.resol_actividades = mig.sga_activ_alumno.resol_actividades AND
mig.sga_alumnos_resol.carrera = mig.sga_activ_alumno.carrera AND
mig.sga_alumnos_resol.legajo = mig.sga_activ_alumno.legajo
JOIN mig._cnv_pk_elementos as m_act ON m_act.unidad_academica = mig.sga_activ_resol.unidad_academica AND
m_act.codigo = mig.sga_activ_resol.actividad AND
m_act.tipo = 'ACTIVIDAD_EXT'
JOIN sga_elementos as ele ON ele.elemento = m_act.elemento
JOIN mig._cnv_pk_alumnos as m_alu ON m_alu.unidad_academica = mig.sga_alumnos_resol.unidad_academica AND
m_alu.carrera = mig.sga_alumnos_resol.carrera AND
m_alu.legajo = mig.sga_alumnos_resol.legajo
WHERE cnv_r.origen = 'EXTRACURRICULAR'
AND m_alu.alumno = r.alumno
Hola Alejandro
Tenés razón, los controles sobre las tablas sga_equiv_internas y sga_equiv_externas son consistentes.
Las actividades extracurriculares las estamos migrando con el parámetro actividades_extracur = 1, es decir como elementos.
Las 6 consultas retornan siempre la misma cantidad de registros: 47825 (no es el valor obtenido ni en cant_g2 ni en cant_g3, sino uno intermedio).
Iris
Esta consulta debería ser la que cuente actividades extracurriculares otorgadas en G2:
SELECT COUNT(*)
FROM mig.sga_resol_activ
JOIN mig.sga_activ_resol ON mig.sga_activ_resol.unidad_academica = mig.sga_resol_activ.unidad_academica AND
mig.sga_activ_resol.resol_actividades = mig.sga_resol_activ.resol_actividades
JOIN mig.sga_activ_alumno ON mig.sga_activ_alumno.unidad_academica = mig.sga_activ_resol.unidad_academica AND
mig.sga_activ_alumno.resol_actividades = mig.sga_activ_resol.resol_actividades AND
mig.sga_activ_alumno.area = mig.sga_activ_resol.area AND
mig.sga_activ_alumno.actividad = mig.sga_activ_resol.actividad AND
mig.sga_activ_alumno.fecha = mig.sga_activ_resol.fecha
JOIN mig.sga_alumnos_resol ON mig.sga_alumnos_resol.unidad_academica = mig.sga_activ_alumno.unidad_academica AND
mig.sga_alumnos_resol.resol_actividades = mig.sga_activ_alumno.resol_actividades AND
mig.sga_alumnos_resol.carrera = mig.sga_activ_alumno.carrera AND
mig.sga_alumnos_resol.legajo = mig.sga_activ_alumno.legajo ;
Hola Alejnadro
Esa consulta también devuelve 47825 registros.
Debería reemplazarla en algún lado del script de postcontrol?
Igual, cant_g3 tiene otro valor (46478)
Por qué puede ser la diferencia de 1347?
Gracias!
Iris
Hola Alejandro
Te envío captura del la nueva ejecución con el scripts que enviaste.
Sigue estando la diferencia de 1347 registros.
Quisiera al menos poder identificar cuáles son, para analizar el motivo, y estar tranquila de no estar perdiendo información importante…
Cómo puedo reconocerlos?
Gracias!
Iris
Podras enviarnos esa base anonimizada?
Hola Alejandro
No estoy pudiendo anonimizar la base…
bin/guarani backup_anonimizado -t Ejecutado: 24/06/22 08:54:20 Exportando la base anonimizada Ejecutando: pg_dump -O -n negocio -h postgres -U postgres -p 5432 guarani3 | /usr/local/app/BD/Anonimizacion/bin/mask >> /usr/local/app/BD/tmp/backup_anonimizado_3.20.0.sql sh: /usr/local/app/BD/Anonimizacion/bin/mask: not found Password: pg_dump: error: could not write to output file: Broken pipe
Alguna idea?
Gracias!!
Iris
Quizas siga estando mal el conteo de actividades extracurriculares otrogadas a los alumnos en G2.
¿Que devuelven estas 3 querys?
1)
SELECT COUNT(*)
FROM mig.sga_resol_activ
JOIN mig.sga_alumnos_resol ON mig.sga_alumnos_resol.unidad_academica = mig.sga_resol_activ.unidad_academica AND
mig.sga_alumnos_resol.resol_actividades = mig.sga_resol_activ.resol_actividades
JOIN mig.sga_activ_alumno ON mig.sga_alumnos_resol.unidad_academica = mig.sga_activ_alumno.unidad_academica AND
mig.sga_alumnos_resol.resol_actividades = mig.sga_activ_alumno.resol_actividades AND
mig.sga_alumnos_resol.carrera = mig.sga_activ_alumno.carrera AND
mig.sga_alumnos_resol.legajo = mig.sga_activ_alumno.legajo
2)
/*
modalidad = G (Grupal) : sga_resol_activ > 1 sga_activ_resol > N sga_activ_alumno > N sga_alumnos_resol
Una actividad y N alumnos en la resolucion
*/
SELECT COUNT(*)
FROM mig.sga_resol_activ
JOIN mig.sga_activ_resol ON mig.sga_activ_resol.unidad_academica = mig.sga_resol_activ.unidad_academica AND
mig.sga_activ_resol.resol_actividades = mig.sga_resol_activ.resol_actividades
JOIN mig.sga_alumnos_resol ON mig.sga_alumnos_resol.unidad_academica = mig.sga_resol_activ.unidad_academica AND
mig.sga_alumnos_resol.resol_actividades = mig.sga_resol_activ.resol_actividades
JOIN mig.sga_activ_alumno ON mig.sga_activ_alumno.unidad_academica = mig.sga_activ_resol.unidad_academica AND
mig.sga_activ_alumno.resol_actividades = mig.sga_activ_resol.resol_actividades AND
mig.sga_activ_alumno.area = mig.sga_activ_resol.area AND
mig.sga_activ_alumno.actividad = mig.sga_activ_resol.actividad AND
mig.sga_activ_alumno.fecha = mig.sga_activ_resol.fecha AND
mig.sga_activ_alumno.carrera = mig.sga_alumnos_resol.carrera AND
mig.sga_activ_alumno.legajo = mig.sga_alumnos_resol.legajo
WHERE mig.sga_resol_activ.modalidad = 'G'
/* modalidad = I (Individual): sga_resol_activ > N sga_activ_resol > 1 sga_alumnos_resol > 1 sga_activ_alumno
Un alumno y N actividades en la resolucion.
*/
SELECT COUNT(*)
FROM mig.sga_resol_activ
JOIN mig.sga_activ_resol ON mig.sga_activ_resol.unidad_academica = mig.sga_resol_activ.unidad_academica AND
mig.sga_activ_resol.resol_actividades = mig.sga_resol_activ.resol_actividades
JOIN mig.sga_alumnos_resol ON mig.sga_alumnos_resol.unidad_academica = mig.sga_resol_activ.unidad_academica AND
mig.sga_alumnos_resol.resol_actividades = mig.sga_resol_activ.resol_actividades
JOIN mig.sga_activ_alumno ON mig.sga_activ_alumno.unidad_academica = mig.sga_activ_resol.unidad_academica AND
mig.sga_activ_alumno.resol_actividades = mig.sga_activ_resol.resol_actividades AND
mig.sga_activ_alumno.area = mig.sga_activ_resol.area AND
mig.sga_activ_alumno.actividad = mig.sga_activ_resol.actividad AND
mig.sga_activ_alumno.fecha = mig.sga_activ_resol.fecha AND
mig.sga_activ_alumno.carrera = mig.sga_alumnos_resol.carrera AND
mig.sga_activ_alumno.legajo = mig.sga_alumnos_resol.legajo
WHERE mig.sga_resol_activ.modalidad = 'I'
2
Hola Alajenadro
La consulta 1) da este error:
ERROR: falta una entrada para la tabla «cnv_r» en la cláusula FROM
Reemplazando «mig.sga_sga_activ_resol» por «mig.sga_activ_resol» en las otras 2 consultas, las cantidades son:
2) 47787 registros
3) 38 registros
Saludos
Iris
Perdon, actualice las 3 querys. Volve a probar.
Pero viendo mensajes anteriores el problema de diferencias era sobre la tabla sga_reconocimiento (cabecera de los tramites de equivalencias relacionadas con las homologaciones de G2, no?)
Por favor volver a correr el pos-control y envia el resultado .
Hola Alejandro
Gracias.
El error está sobre la tabla sga_reconocimiento_act.
cant_g2: 47.825,00
cant_g3: 46.478,00
La ejecución de los scripts que enviaste da lo siguiente como resultado:
Gracias
Iris
Por favor corre la funcion mig.sp_pos_ctrl_equivalencias() y enviá el resultado
Hola Alejandro
Acá va el resultado:
(sga_equiv_tramite,“OK: Cantidad de Trámites de equivalencias (sga_equiv_tramite) …”,3513,3513)
(sga_reconocimiento,“OK: Cantidad de Trámites de equivalencias de Homologaciones (sga_reconocimiento) …”,5,5)
(sga_equiv_otorgada,“OK: cantidad de equivalencias (sga_equiv_otorgada) …”,14241,14241)
(sga_reconocimiento_act,“OK: cantidad de actividades homologadas (sga_equiv_otorgada) …”,7,7)
(sga_equiv_internas,“OK: Cantidad de equiv_internas …”,5471,5471)
(sga_equiv_externas,“OK: cantidad de equiv_externas …”,358,358)
(sga_reconocimiento_act,“Error: Cantidad de reconocimiento de ACTIVIDADES EXTRACURRICULARES no coinciden (sga_activ_alumno) …”,47825,46478)
Saludos
Iris
Por favor envia el resultado de estas consultas:
1)
SELECT COUNT(*)
FROM mig._cnv_pk_reconocimiento as m_r
JOIN sga_reconocimiento as r ON r.nro_tramite = m_r.nro_tramite
JOIN sga_reconocimiento_act as d ON d.nro_tramite = r.nro_tramite
WHERE m_r.origen = 'EXTRACURRICULAR';
2)
SELECT SUM(CASE WHEN d.homologada = 'S' THEN 1 ELSE 0 END) as cant_equiv_homologadas,
SUM(CASE WHEN d.homologada = 'N' THEN 1 ELSE 0 END) as cant_act_extracurriculares
FROM mig._cnv_pk_reconocimiento as m_r
JOIN sga_reconocimiento as r ON r.nro_tramite = m_r.nro_tramite
JOIN sga_reconocimiento_act as d ON d.nro_tramite = r.nro_tramite ;
3)
SELECT filas FROM mig._tablas_g3 where tabla = 'sga_reconocimiento_act';
Hola Aljandro
Estos son los resultados de las query:
count
47.825
cant_equiv_homologadas|cant_act_extracurriculares
7|47.825
filas
1.347
Saludos
Iris
La diferencia que veo es lo que habia previo a la migracion, las 1347 filas de la 3er query.
Puede ser que haya quedado mal ese dato en esa tabla?
Porque el resultado de la query 1 (47825), el dato “cant_act_extracurriculares” de la query 2 y lo que se cuenta de lo que hay en la base de Guarani 2 todo coincide, son las 47825 filas.
¿Volviste a realizar una migración completa?
Hola Alejandro
Estos son los datos obtenidos de la última migración completa que hice hace unos 10 días.
Es de una base de G2, sobre una base de G3 con 3 responsables académicas ya en producción.
Puede ser que el valor de actualización de la cantidad de filas originales, no haya quedado bien actualizado entonces?
Saludos
Iris