diff --git a/src/alumno_inscrito/alumno_inscrito.service.ts b/src/alumno_inscrito/alumno_inscrito.service.ts index 3b56053..7448362 100644 --- a/src/alumno_inscrito/alumno_inscrito.service.ts +++ b/src/alumno_inscrito/alumno_inscrito.service.ts @@ -61,31 +61,25 @@ export class AlumnoInscritoService { take: 100, }); } - - async findAllInscritos(idPeriodo: number) { - return this.alumnoInscritoRepo - .createQueryBuilder('inscritos') - - .innerJoin('inscritos.alumno', 'alumno') - .innerJoin('alumno.carrera', 'carrera') - .innerJoin('inscritos.plataforma', 'plataforma') - .innerJoin('inscritos.periodo', 'periodo') - - .where('periodo.id_periodo = :idPeriodo', { idPeriodo }) - - .select([ - 'carrera.carrera AS carrera', - 'alumno.genero AS genero', - 'plataforma.nombre AS profesor', - 'COUNT(DISTINCT alumno.id_cuenta) AS total' - ]) - - .groupBy('carrera.carrera') - .addGroupBy('alumno.genero') - .addGroupBy('plataforma.nombre') - - .getRawMany(); - } +async findAllInscritos(idPeriodo: number) { + return this.alumnoInscritoRepo + .createQueryBuilder('inscritos') + .innerJoin('inscritos.alumno', 'alumno') + .innerJoin('alumno.carrera', 'carrera') + .innerJoin('inscritos.plataforma', 'plataforma') + .innerJoin('inscritos.periodo', 'periodo') + .where('periodo.id_periodo = :idPeriodo', { idPeriodo }) + .select([ + 'carrera.carrera AS carrera', + 'plataforma.nombre AS profesor', + 'COUNT(DISTINCT CASE WHEN alumno.genero IN (\'F\', \'Femenino\') THEN alumno.id_cuenta END) AS femenino', + 'COUNT(DISTINCT CASE WHEN alumno.genero IN (\'M\', \'Masculino\') THEN alumno.id_cuenta END) AS masculino', + 'COUNT(DISTINCT alumno.id_cuenta) AS total' + ]) + .groupBy('carrera.carrera') + .addGroupBy('plataforma.nombre') + .getRawMany(); +} async findAllPlataforma() { return this.plataformaRepo.find();