Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho uma tabela de campo VALOR onde armazeno valores decimais R$. e tenho outra tabela onde especifico o que é crédito e débito.
A tabela está assim:
|---------+---------|
| valor | tipo |
| 1,00 | debito |
| 3,00 | debito |
| 5,00 | credito |
| 2,00 | debito |
|---------+---------|Gostaria de somar os totais de cada um (debito e credito) e a soma do debito-credito
eh uma tabela apenas com 2 campos http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
case
select sum((case when tipo = 'credito' then 1 else -1 end) * valor)
from tabela
Motta meu salvador http://forum.imasters.com.br/public/style_emoticons/default/clap.gif
Fiz algumas modificações e agora está O.K.
Ae vai o código funcionando belezinha:
Separei por partes para os outros entenderem.
Minha tabela o campo TIPO coloco:
0 pra Debito
1 pra Crédito
SELECT SUM(
(CASE WHEN
tipo =0 THEN 1 END) * valor) deb,Soma todos os campos onde o TIPO = 0 (débito)
SUM(
(CASE WHEN tipo =1 THEN 1 END) * valor) cred,Soma todos os campos onde o TIPO = 1 (crédito)
SUM(
(CASE WHEN tipo =1 THEN 1 ELSE -1 END) * valor) TotalSubtrai o débito pelo crédito.
FROM financasContinuação do código.
Pode fechar o POST abraço e valew.
Vagner:
select tipo, sum(valor)
from 'suas tabelas'
where 'os joins das tabelas'
group by tipo
Esta query retornará a soma por tipo
Se você retirar o atributo tipo e o group by, ele retornará a soma de débito mais crédito. Antes disso, faça um tratamento para o débito ficar negativo (multiplique por -1).
Teste aí e qq coisa me fale.
Abraços, Guilherme.