From 078cad7f08f3b510fc11846b1f6118c2bf14447f Mon Sep 17 00:00:00 2001 From: Vytor Calixto <vytorcalixto@gmail.com> Date: Fri, 24 Mar 2017 11:24:10 -0300 Subject: [PATCH] Add enrollment per school level and adm dependency in /spatial/educational --- src/libs/routes/spatial.js | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/libs/routes/spatial.js b/src/libs/routes/spatial.js index 4c6489c1..2196c7a2 100644 --- a/src/libs/routes/spatial.js +++ b/src/libs/routes/spatial.js @@ -356,10 +356,30 @@ spatialApp.get('/educational', rqf.parse(), rqf.build(), (req, res, next) => { .order('ano_censo') .order('localizacao.descricao'); + const enrollmentsPerSchoolLevelAndAdmDependencyQry = req.sql.clone() + .field('\'Brasil\'', 'name') + .field('COALESCE(COUNT(matricula.id), 0)', 'total') + .field('matricula.ano_censo', 'census_year') + .field('etapa_ensino.desc_etapa', 'school_level_name') + .field('dependencia_adm.nome', 'adm_dependency_name') + .from('etapa_ensino') + .from('dependencia_adm') + .from('matricula') + .where('matricula.etapa_ensino_id=etapa_ensino.id') + .where('matricula.dependencia_adm_id=dependencia_adm.id') + .where('matricula.tipo <= 3') + .where(`matricula.ano_censo IN (${schoolClassYearQry})`) + .group('matricula.ano_censo') + .group('etapa_ensino.desc_etapa') + .group('dependencia_adm.nome') + .order('matricula.ano_censo') + .order('etapa_ensino.desc_etapa') + .order('dependencia_adm.nome'); + const queryLabels = [ "school", "school_per_location", "school_per_adm_dependency", "enrollment", "enrollment_per_adm_dep", - "enrollment_per_school_level", "enrollment_per_location" ]; + "enrollment_per_school_level", "enrollment_per_location", "enrollment_per_school_level_adm_dependency" ]; const querySet = [ totalSchoolsQry, schoolsPerLocationQry, schoolsPerAdmDependencyQry, enrollmentsQry, - enrollmentsPerAdmDepQry, enrollmentsPerSchoolLevelQry, enrollmentsPerLocationQry]; + enrollmentsPerAdmDepQry, enrollmentsPerSchoolLevelQry, enrollmentsPerLocationQry, enrollmentsPerSchoolLevelAndAdmDependencyQry]; // wait until all queries finish or one of them fail Promise.all(dbExecAll(querySet)).then((queryResults) => { req.result = processResultSet(queryResults, queryLabels); -- GitLab