Lucas_Camara 21 de mar. de 2020 1 like
Faça uma consulta usando SUM e agrupada pelo mês.
Eng_Thiagolima 21 de mar. de 2020
você pode me mostrar um exemplo de como seria essa consulta?
Lucas_Camara 21 de mar. de 2020
Não sei qual banco está usando, mas é algo mais ou menos assim:
SELECT id, EXTRACT(month FROM data) as mes, SUM(custoTotal)
FROM SuaTabela
GROUP BY id, EXTRACT(month FROM data)
Eng_Thiagolima 21 de mar. de 2020
não estou usando base de dados, estou jogando do json direto no objeto com gson, e mostrando no datatable do primeface
Lucas_Camara 21 de mar. de 2020
hmmm. Informação importante. Como vc está carregando os dados desse json para ser apresentado na tela?
Eng_Thiagolima 21 de mar. de 2020
aqui está o json que estou querendo somar os valores: https://dadosabertos.camara.leg.br/api/v2/deputados/204554/despesas?mes=3&mes=2&ordem=DESC&ordenarPor=dataDocumento
eu tenho que pegar os daods dos 2 ultimos meses (que já esta na url) e somar os valores de casa mes, no caso mostraria 2 valores: mes 2 - valor tanto total, mes 3 - valor tanto total.
Eu estou usando o gson para transformar o json em objeto, e então transformo em uma lista e mostro da datatable
Solucao aceita
Lucas_Camara 21 de mar. de 2020 1 like
Esse link abre uma estrutura XML e não JSON. Sobre fazer o agrupamento na lista, vc pode usar lambda para isso, veja:
Map < Integer , Double > collect = itens . stream () . collect ( Collectors . groupingBy ( Item :: getMes , Collectors . summingDouble ( Item :: getValor )));
Porém, a função de agrupar retorna um Map. No meu exemplo, o key do map é o mês e o value é o valor somado.
Eng_Thiagolima 21 de mar. de 2020 1 like
Eng_Thiagolima 22 de mar. de 2020 1 like
Tá funcionou, e desde já obrigado.
Agora vem a luta de como conseguir mostrar na datatable ou como outputLabel mesmo no primefaces