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'))