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

15/12/2017

0

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!
Adilson Fernandes

Adilson Fernandes

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

Fabiano Carvalho

Fabiano Carvalho
Responder

Mais Posts

18/12/2017

Adilson Fernandes

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

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar