Consulta SQL somar a mesma coluna em resultados e condições diferentes.

15/12/2017

4

Olá!

Preciso fazer uma consulta que junte essas três sentenças abaixo em um resultado só. O campo somado (a09_vavn) é o mesmo em todas, uma muda a data e o outro não possui a data e preciso agrupar pelo cliente.

select distinct(a09_clie), cast(sum(a09_vavn)as numeric(12,2)) as VENCIDOS from a009 where a09_cdbx = ''0'' and a09_dtvn < ''20171215'' and a09_vend = ''0000403'' group by a09_clie;

select distinct(a09_clie), cast(sum(a09_vavn)as numeric(12,2)) as VENCER from a009 where a09_cdbx = ''0'' and a09_dtvn > ''20171215'' and a09_vend = ''0000403'' group by a09_clie;

select distinct(a09_clie), cast(sum(a09_vavn)as numeric(12,2)) as ABERTO from a009 where a09_cdbx = ''0'' and a09_vend = ''0000403'' group by a09_clie;

o resultado ficaria assim mais ou menos assim:

| a09_clie | VENCIDOS | VENCER | ABERTO |
|0000105 | 699,79 | 215,41 | 245,95 |
|0000122 | 99,79 | 21,41 | 5,95 |
|0000212 | 49,80 | 11,47 | 35,98 |

Agradeço a ajuda!
Responder

Post mais votado

15/12/2017

tente dessa forma;

SELECT 
	A09_CLIE,
	CAST(SUM(CASE WHEN  A09_CDBX = '0' AND A09_DTVN < '20171215' AND A09_VEND = '0000403' THEN A09_VAVN ELSE 0 END) AS NUMERIC(12,2)) AS VENCIDOS,
	CAST(SUM(CASE WHEN  A09_CDBX = '0' AND A09_DTVN > '20171215' AND A09_VEND = '0000403'  THEN A09_VAVN ELSE 0 END) AS NUMERIC(12,2)) AS VENCER,
	CAST(SUM(CASE WHEN  A09_CDBX = '0' AND A09_VEND = '0000403'  THEN A09_VAVN ELSE 0 END) AS NUMERIC(12,2)) AS ABERTO 
FROM A009
GROUP BY A09_CLIE
Responder

Mais Posts

Amigo é isso mesmo que eu preciso. Muito obrigado!
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar