Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

vagner.oliveira

[Resolvido] Somar 2 valores mesmo campo

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

case

 

select sum((case when tipo = 'credito' then 1 else -1 end) * valor)

from tabela

Compartilhar este post


Link para o post
Compartilhar em outros sites

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)  Total
Subtrai o débito pelo crédito.

 

FROM financas
Continuação do código.

 

Pode fechar o POST abraço e valew.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.