diff --git a/src/libs/routes/cub.js b/src/libs/routes/cub.js
index f80c877901faf795204cf830f9a04130739a81bf..cfc2848a19ef2f831c6562a89d5fd5ea7f938b22 100644
--- a/src/libs/routes/cub.js
+++ b/src/libs/routes/cub.js
@@ -134,38 +134,49 @@ rqf.addField({
 
 cubApp.get('/last_state_values', rqf.parse(), rqf.build(), (req, res, next) => {
 
-    var sub_table = squel.select().from('cub')
+    var price_by_id = squel.select().from('cub')
     .field('estado_id')
     .field('MAX(ano_censo*100 + mes_censo)', 'ano_censo')
     .group('estado_id')
 
-    var states = squel.select().from('cub')
-    .field('cub.ano_censo', 'ano')
-    .field('cub.mes_censo', 'mes')
-    .field('cub.estado_id', 'cod_uf')
-    .field('estado.sigla', 'sigla_uf')
-    .field('cub.tipo_preco', 'tipo_preco')
-    .field('cub.preco', 'preco')
-    .join(
-        sub_table, 
-        'sub', 
-        'cub.estado_id = sub.estado_id AND cub.ano_censo = (sub.ano_censo/100)'
-    )
-    .join('estado', null, 'cub.estado_id = estado.id')
-
-    var average = squel.select().from(states, "states")
-    .field('AVG(states.preco)', 'preco')
-    .field("'BR'", 'sigla_uf')
-    .field('states.tipo_preco')
-    .group('states.tipo_preco')
-
     if (req.filter.size || req.dims.size){
         if ('state' in req.filter || 'state' in req.dims){
-            req.sql = states
+            //req.sql = states
+            req.sql.from('cub')
+            .field('cub.ano_censo', 'ano')
+            .field('cub.mes_censo', 'mes')
+            .field('cub.tipo_preco', 'tipo_preco')
+            .field('cub.preco', 'preco')
+            .join(
+                price_by_id, 
+                'sub', 
+                'cub.estado_id = sub.estado_id AND cub.ano_censo = (sub.ano_censo/100)'
+            )
+            .join('estado', null, 'cub.estado_id = estado.id')
+            .group('cub.ano_censo')
+            .group('cub.mes_censo')
+            .group('cub.tipo_preco')
+            .group('cub.preco')
+        }
+        else{
+            req.sql.from("cub")
         }
     }
     else{
-        req.sql = average
+        //req.sql = average
+        req.sql.from(
+            squel.select().from('cub')
+            .field('cub.tipo_preco', 'tipo_preco')
+            .field('cub.preco', 'preco')
+            .join(price_by_id, 'sub', 
+                'cub.estado_id = sub.estado_id AND cub.ano_censo = (sub.ano_censo/100)'
+            )
+            .join('estado', null, 'cub.estado_id = estado.id')
+            , "states")
+        .field('AVG(states.preco)', 'preco')
+        .field("'BR'", 'sigla_uf')
+        .field('states.tipo_preco')
+        .group('states.tipo_preco')
     }
     next();
 }, query, id2str.transform(), response('last_state_values'))