Ajuda em consulta  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
elugo
JavaChild
[Avatar]

Membro desde: 08/02/2008 15:30:54
Mensagens: 139
Localização: Campo grande ms
Offline

Bom dia, pessoal estou com um problema que não consigo encontrar a solução!
Na verdade é uma query que nao estou conseguindo elaborar...

Tenho uma tabela de TB_CONTA. Nesta tabela, tenho um campo CT_REFERENCIA
este campo guarda se a conta é uma receita ou uma despesa "R" - Receita; "P" - Despesa

Meu cenário é o seguinte: Preciso trazer a soma das receitas e despesas agrupadas por mês
exemplo:

CONTA 1: dataPagamento: 26/01/2010; valor: 56,00; referencia: "P"
CONTA 2: dataPagamento: 27/01/2010; valor: 120,00; referencia: "R"
CONTA 3: dataPagamento: 29/01/2010; valor: 200,00; referencia: "R"
CONTA 4: dataPagamento: 23/01/2010; valor: 300,00; referencia: "P"
CONTA 5: dataPagamento: 09/02/2010; valor: 70,00; referencia: "R"
CONTA 6: dataPagamento: 23/02/2010; valor: 60,00; referencia: "P"

o resultado deveria sair assim:

Mês = Janeiro
Receita = 220,00
Despesa = 356,00

Mês = Fevereiro
Receita = 70,00
Despesa = 60,00


Alguém poderia me ajudar fazer está consulta?
agradeço
[Email] [MSN]
thiago.correa
GUJ Master
[Avatar]

Membro desde: 26/03/2006 18:54:30
Mensagens: 1861
Offline

você consegue isso, manipulando o seu campo data para retorar somente o mês! Mas mesmo assim o resultado seria dado em linhas, e não da maneira que você deseja

Algo do tipo

Mês | Valor | CT_REFERENCIA
----------------------------------------
1 | 220,00 | P
1 | 356,00 | R
2 | 70,00 | R
1 | 60,00 | P

Eu não sei como está organizado essa tabela, mas o sql seria algo do tipo, imaginando que você usa o BD oracle

select to_char(dt_pagamento, 'MM') mes, sum(valor) valor_total, ct_referencia from TB_CONTA group by mes, valor_total, ct_referencia

Não estou bem lembrado quanto ao formato do mês, mas segue essa linha, caso seu BD não seja oracle, consulte a documentação do mesmo!

---
"Se não puder ajudar, atrapalhe, afinal de contas o importante é participar!"
Thiago
[MSN]
mrrbigu
Debugger
[Avatar]

Membro desde: 06/12/2007 17:45:50
Mensagens: 66
Localização: Espírito Santo
Offline

No postgresql fica assim:

SELECT DATE_PART('MONTH',"dataPagamento") AS mes,sum(case when referencia='R' then valor else 0 end) as receita, sum(case when referencia='P' then valor else 0 end) as despesa FROM tb_conta
group by mes;

só que no caso o mês fica em número, ou seja 1 e não "janeiro".
 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team