| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/03/2010 12:16:25
|
elugo
JavaChild
![[Avatar]](/images/avatar/dd27f2bc962dc976d5e3115fdc6120ce.jpg)
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
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/03/2010 12:47:58
|
thiago.correa
GUJ Master
![[Avatar]](/images/avatar/c37f9e1283cbd4a6edfd778fc8b1c652.jpg)
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
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/03/2010 22:52:00
|
mrrbigu
Debugger
![[Avatar]](/images/avatar/116e268d0a91872deec1347eb675259c.jpeg)
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".
|
|
|
 |
|
|
|
|