From b672b91b97119617985462401522663b7a91fa4f Mon Sep 17 00:00:00 2001
From: Lewis <lgtg20@inf.ufpr.br>
Date: Wed, 11 Dec 2024 11:00:14 -0300
Subject: [PATCH] maybe working

---
 src/libs/routes_v1/adjustedLiquidFrequency.js | 54 ++++++++++++-------
 1 file changed, 35 insertions(+), 19 deletions(-)

diff --git a/src/libs/routes_v1/adjustedLiquidFrequency.js b/src/libs/routes_v1/adjustedLiquidFrequency.js
index b90443ba..a682dac2 100644
--- a/src/libs/routes_v1/adjustedLiquidFrequency.js
+++ b/src/libs/routes_v1/adjustedLiquidFrequency.js
@@ -182,6 +182,16 @@ rqf.addField({
         type: 'integer',
         field: 'faixa_rendimento_aux_tx'
     }
+}).addValue({
+    name: 'age_range_all',
+    table: 'pnad_novo',
+    tableField: 'faixa_etaria',
+    resultField: 'age_range_all_id',
+    where: {
+        relation: '=',
+        type: 'integer',
+        field: 'faixa_etaria'
+    }
 }).addValue({
     name: 'gender',
     table: 'pnad_novo',
@@ -294,23 +304,24 @@ function matchQueries(queryPartial, queryTotal) {
 }
 
 
-adjustedLiquidFrequency.get('/', rqf.parse(), rqf.build(), (req, res, next) => {    
-    let totalPop = req.sql.clone();
-    totalPop.field("ano_ref")
-    .field("faixa_etaria")
-    .field("SUM(peso_domicilio_pessoas_com_cal)", "total")
-    .from("pnad_novo")
-    .group("ano_ref")
-    .group("faixa_etaria");
+adjustedLiquidFrequency.get('/', rqf.parse(), (req, res, next) => {    
+    // Subquery: total_pop
+    let totalPop = squel.select()
+        .field("ano_ref")
+        .field("faixa_etaria")
+        .field("SUM(peso_domicilio_pessoas_com_cal)", "total")
+        .from("pnad_novo")
+        .group("ano_ref")
+        .group("faixa_etaria");
 
     // Aplicando filtros dinâmicos à subquery total_pop
     totalPop = rqf.buildQuery(req, totalPop);
 
     // Subquery: total_apoio_freq
-    let totalApoioFreq = req.sql.clone();
-        totalApoioFreq.field("pnad_novo.ano_ref")
-        .field("pnad_novo.apoio_frequencia_ajustada")
-        .field("total_pop.total")
+    let totalApoioFreq = squel.select()
+        .field("pnad_novo.ano_ref", "ano_ref")
+        .field("pnad_novo.apoio_frequencia_ajustada", "apoio_frequencia_ajustada")
+        .field("total_pop.total", "total")
         .field("SUM(pnad_novo.peso_domicilio_pessoas_com_cal)", "total_freq")
         .from("pnad_novo")
         .join(
@@ -322,15 +333,20 @@ adjustedLiquidFrequency.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
         .group("pnad_novo.apoio_frequencia_ajustada")
         .group("total_pop.total");
 
-    req.sql.field("ano_ref")
-        .field("apoio_frequencia_ajustada")
-        .field("round((total_freq / total) * 100,1)", "total")
+    // Aplicando filtros à subquery total_apoio_freq
+    totalApoioFreq = rqf.buildQuery(req, totalApoioFreq);
+
+    // Query principal
+    req.sql = squel.select()
+        .field("total_apoio_freq.ano_ref")
+        .field("total_apoio_freq.apoio_frequencia_ajustada")
+        .field("ROUND((total_apoio_freq.total_freq / total_apoio_freq.total) * 100, 1)", "total")
         .from(totalApoioFreq, "total_apoio_freq")
-        .where("ano_ref >= 2019")
-        .order("ano_ref")
-        .order("apoio_frequencia_ajustada");
+        .where("total_apoio_freq.ano_ref >= 2019") // Corrigido para usar alias correto
+        .order("total_apoio_freq.ano_ref")
+        .order("total_apoio_freq.apoio_frequencia_ajustada");
 
-        next();
+    next();
 }, query, id2str.transform(false), response('adjusted_liquid_frequency'));
 
 module.exports = adjustedLiquidFrequency;
-- 
GitLab