[RESOLVIDO]MySql, como somar apenas os valores negativos de um coluna filtrada por data?

Boa tarde,
Imaginem uma tabela com as colunas e valores abaixo:
data | Tipo | Valor
2016-01-01 | Despesa | -100.50
2016-01-02 | Despesa | -50.00
2016-01-02 | Receita | 100.75

Quero somar apenas os valores das despesas nessa tabela limitando a pesquisa por data. No exemplo acima se eu limitasse a pesquisa do dia 01 ao 02 com um sum() simples iria dar um saldo geral, mas queria o resultado apenas das despesas.
O maximo que cheguei perto foi a Query:
select sum(cxGeral) from caixa where cxData between ‘2016-01-01’ and ‘2016-01-02’ group by cxTipo = ‘Despesa’

Porém ela me dá o resultado total e um segundo resultado com o valor que eu quero:
-49.75
-150.50

Como faço para mostrar apenas o resultado de baixo (-150.50) ou no java, pegar o segundo resultado e guardar numa TextField?

where valor < 0 ???

2 curtidas

Tá, fiz isso, mas não consegui juntar isso com o filtro por data também. Tipo, movimento do ano todo, mas quero que calcule apenas de um mês.

Ai tu vai incrementando teu Group by com as colunas/valores pelos quais tu quer que sejam agrupados…

Tipo, fiz isso:
select sum(cxGeral) from caixa where cxGeral < 0 group by cxData between ‘2016-01-15’ and ‘2016-01-28’

Só que me retorna dois valores, um do dia 15 e outro do dia 28 e não do dia 15 ao dia 28

é que você esta agrupando pela data completa… tente agrupar pelo mes e ano :wink:

1 curtida

1 curtida

guivirtuoso, deu certo! Obrigado
Rebert, tava apanhando pra filtrar a data e deu certinho esse comando. Muito obrigado. :slightly_smiling:
Só por curiosidade, no print, você usou o HeiqiSql né?

Boa tarde!
Desculpe a demora para responder.
uso o HeidiSQL, muito bom…