E ai galera!! Estou precisando fazer uma consulta no banco retornando a soma de determinado campo numa tabela, no caso é uma tabela Venda, somando o total delas em um determinado período de tempo. Isso utilizando Hibernate com annotions e EntityManager.
Tentei fazer com sql normal assim:
public static void pesquisaValorVenda(String idVenda, Date dateIncio, Date dateFim) {
Object object = null;
EntityManager entityManager = HibernateFactory.getEntityManager();
Query query = entityManager.createQuery("select sum(total_venda) from Venda where data between ? and ? and idvenda =? ");
query.setParameter(1, dateInicio);
query.setParameter(2, dateFim);
query.setParameter(3, idVenda);
object = query.getSingleResult();
entityManager.close();
return object;
}
Mas da erro dizendo que não reconhece a funcao sum passada.
Alguém sabe a maneira correta de fazer ou onde estou fazendo errado?
Conto com a ajuda da galera ai.
Bom dia galera! Sei que já faz alguns dias que iniciei o post, mas é que passei o fim de semana todo tentando resolver o problema e nada. Baseado no link que o thingol passou fiz varios testes, alguns com sucesso, mas justamente o campo que preciso buscar nao obtive sucesso. Estou utilizando como SGDB o Postgresql.
Quando não utilizo alias na pesquisa consiguo realizar as funções count e sum nos meus campos de tabela sem ( _ ) tipo: alorbruto. Mas quando uso com alias só consiguo fazer count nos campo com ( _ ) tipo: valor_venda.
Erro ocorrido com alias:
publicstaticvoidpesquisarValorVendaPorData2(){EntityManagerentityManager=HibernateFactory.getEntityManager();Iteratorresults=entityManager.createQuery("select count(vend.quantidade_parcela) from Venda vend ").getResultList().iterator();while(results.hasNext()){Objectrow=results.next();Longtype=(Long)row;System.out.println(" Soma teste "+type);}}
Alguém tem alguma idéia de onde possa estar o erro, já testei de várias formas possíveis e não encontro soluçãs lógica para a situação.
Obrigado.