Reporte de Alumnos con error

Buenos días, hemos detectado el siguiente problema en el Reporte de Alumnos: al filtrar por Título obtenido y seleccionar la columna Fecha de Egreso dá el siguiente mensaje: “El resultado de SELECT INTO es una tabla resultante de más de una fila o el resultado de la subconsulta de un predicado básico es más de un valor…”

Esto ocurre porque en el método get_columna_dinamica_fecha_egreso del co_alumnos.php no se recibe como parámetro el certificado, por lo que si el alumno tiene más de un título se seleccionan todos.

Desde ya agradezco sugerencias para solucionar el error.
Saludos.

Hola Alejandra,
nos podrías indicar la versión en que se encuentran?
Saludos

Si, es la versión 3.21.3

Buen día Alejandra,
Estuvimos haciendo unas pruebas y no nos muestra el mensaje que mencionas, te pedimos si nos podes enviar los logs de al momento de querer emitir el reporte con los filtros que aplicaste.
Saludos.

Hola Estela, envío capturas de pantallas y log del error.

Log:

[ERROR][guarani] SQLSTATE[21000]: Cardinality violation: 7 ERROR:  una subconsulta utilizada como expresión retornó más de un registro
[ERROR][toba] toba_error_db: <p><b>SQLSTATE:</b> db_21000</p><p><b>CODIGO:</b> 7</p><p><b>MENSAJE:</b> ERROR:  una subconsulta utilizada como expresión retornó más de un registro</p><p><b>SQL:</b> 
				SELECT				
					vw_personas.apellido_nombres AS apellido_y_nombres,
					vw_personas.tipo_nro_documento AS documento_principal,
					sga_alumnos.persona,
					sga_alumnos.alumno,
					sga_alumnos.legajo,
					sga_alumnos.propuesta,
					sga_alumnos.calidad,
					sga_alumnos.regular,
					vw_planes.propuesta_nombre as propuesta_nombre,
					vw_planes.propuesta_codigo as propuesta_codigo,
					'(' || vw_planes.propuesta_codigo || ') ' || vw_planes.propuesta_nombre AS propuesta_descr,
					vw_planes.plan_nombre    as  plan_nombre,
					vw_planes.plan_codigo    as plan_codigo,
					vw_planes.version_nombre as plan_version_nombre,
					vw_planes.version_codigo as plan_version_codigo,
					vw_planes.plan_version_actual as plan_version_actual,
					sga_alumnos.ubicacion,
					sga_propuestas_aspira.anio_academico as anio_academico_ingreso,
					sga_situacion_aspirante.nombre as nombre_estado_inscripcion,
					sga_situacion_aspirante.situacion_asp,					
					 (SELECT to_char(fecha_egreso, 'DD/MM/YYYY')
							FROM sga_certificados_otorg
							WHERE sga_certificados_otorg.alumno = sga_alumnos.alumno
							AND sga_certificados_otorg.certificado = certificado --Este campo viene del filtro titulo_obtenido
							AND sga_certificados_otorg.anulado = 0
							) as fecha_egreso
                    
				FROM		
					sga_alumnos
					JOIN vw_personas ON sga_alumnos.persona = vw_personas.persona
					JOIN mdp_personas ON mdp_personas.persona = vw_personas.persona
					JOIN sga_propuestas_aspira ON (sga_propuestas_aspira.persona = sga_alumnos.persona AND sga_propuestas_aspira.propuesta = sga_alumnos.propuesta)
					JOIN sga_situacion_aspirante ON (sga_situacion_aspirante.situacion_asp = sga_propuestas_aspira.situacion_asp AND sga_situacion_aspirante.resultado_asp IN ('A', 'P', 'R'))
					JOIN vw_planes ON vw_planes.plan_version = sga_alumnos.plan_version
					JOIN sga_ubicaciones ON sga_alumnos.ubicacion = sga_ubicaciones.ubicacion 
					
					
				 WHERE  		sga_alumnos.propuesta = '82'  AND  sga_alumnos.propuesta IN (SELECT propuesta FROM sga_propuestas_ra WHERE responsable_academica = '6')      AND EXISTS (SELECT 1 FROM sga_certificados_otorg WHERE alumno = sga_alumnos.alumno AND certificado = 88 AND anulado = 0)
				
				 ORDER BY	
					vw_planes.propuesta_nombre,
					sga_ubicaciones.nombre,
					vw_personas.apellido,
					vw_personas.nombres 
		 -- toba_log: 18437949 </p>
[TRAZA]
	
	toba_db->consultar 
Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/lib/db/toba_db.php, lInea 468 
	
	guarani_db_nucleo::consultar 
Archivo: /usr/local/proyectos/guarani/php/nucleo/matriculas/alumnos/co_alumnos.php, lInea 7363 
	
	co_alumnos->get_reporte_alumnos 
Archivo: /usr/local/proyectos/guarani/php/operaciones/matriculas/alumnos/ci_rep_alumnos.php, lInea 62 
	
	ci_rep_alumnos->get_datos 
Archivo: /usr/local/proyectos/guarani/php/operaciones/_lib/ci_rep_sin_listado_inicial.php, lInea 20 
	
	ci_rep_sin_listado_inicial->conf__cuadro 
Archivo: /usr/local/proyectos/guarani/php/operaciones/matriculas/alumnos/ci_rep_alumnos.php, lInea 69 
	
	ci_rep_alumnos->conf__cuadro 
Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/componentes/toba_componente.php, lInea 221 
	
	toba_componente->invocar_callback 
Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/componentes/interface/toba_ci.php, lInea 636 
	
	toba_ci->configurar_dep 
Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/componentes/interface/toba_ci.php, lInea 475 
	
	toba_ci->dependencia 
Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/componentes/toba_componente.php, lInea 544 
	
	toba_componente->dep 
Archivo: /usr/local/proyectos/guarani/php/operaciones/_lib/ci_reporte.php, lInea 126 
	
	ci_reporte->cuadro 
Archivo: /usr/local/proyectos/guarani/php/operaciones/_lib/ci_reporte.php, lInea 17 
	
	ci_reporte->conf 
Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/componentes/interface/toba_ci.php, lInea 614 
	
	toba_ci->pre_configurar 
Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/toba_solicitud_web.php, lInea 159 
	
	toba_solicitud_web->procesar_servicios 
Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/toba_solicitud_web.php, lInea 60 
	
	toba_solicitud_web->procesar 
Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/toba_nucleo.php, lInea 96 
	
	toba_nucleo->acceso_web 
Archivo: /usr/local/proyectos/guarani/www/aplicacion.php, lInea 33 
	

Saludos

Gracias Alejandra, derivamos el tema al equipo técnico para que pueda analizar la información enviada, en cuanto puedan verla, van a darte una respuesta.
Saludos

Hola! pudieron ver algo respecto a este reporte?

Saludos,
Natalia

Hola Natalia, podras probar esta consulta y ver si es la que da error?

SELECT sga_alumnos.alumno,					
		(SELECT to_char(fecha_egreso, 'DD/MM/YYYY')
							FROM sga_certificados_otorg
							WHERE sga_certificados_otorg.alumno = sga_alumnos.alumno
							AND sga_certificados_otorg.certificado = 88
							AND sga_certificados_otorg.anulado = 0
	) as fecha_egreso
             
FROM	sga_alumnos
				 WHERE  sga_alumnos.propuesta = '82'  AND  sga_alumnos.propuesta IN (SELECT propuesta FROM sga_propuestas_ra WHERE responsable_academica = '6')      
				 AND EXISTS (SELECT 1 FROM sga_certificados_otorg WHERE alumno = sga_alumnos.alumno AND certificado = 88 AND anulado = 0)

Si da error, comenta la subquery del SELECT, campo fecha_egreso y fijate si comentando ese campo deja de dar el error.
Si sin esa subquery ya no da error, busca el alumno que esta dando el error, con la siguiente consulta:

SELECT alumno, count(*)
FROM sga_certificados_otorg
WHERE sga_certificados_otorg.certificado = 88
	AND sga_certificados_otorg.anulado = 0
GROUP BY alumno
HAVING COUNT(*) > 1

Hola Alejandro, la query enviada no da error.

El problema parece que está en que la subquery no recibe el dato del certificado, y por eso arroja más de una fila (en este caso título intermedio y título final).

Si, me llamo la atencion este dato
(SELECT to_char(fecha_egreso, ‘DD/MM/YYYY’)
FROM sga_certificados_otorg
WHERE sga_certificados_otorg.alumno = sga_alumnos.alumno
AND sga_certificados_otorg.certificado = certificado
AND sga_certificados_otorg.anulado = 0
) as fecha_egreso

Veremos como llega el dato del certificado consultado en el reporte.

Hola Natalia,
Podrían por favor crear una nueva solicitud en el Gestor de Solicitudes haciendo referencia a este post? Les enviaremos la solución por esa vía.
Saludos, Florencia.

Hola Florencia, ok, GDS 73623.

Muchas gracias!!

Saludos