Olá Pessoal,

 

Estou executando a sentença abaixo: 

 

SELECT setor,SUM(total) AS total

FROM

  (

  SELECT 'PV' AS setor,

          SUM(pagvalorprincipal) AS total

   FROM pagamentos 

   WHERE pagdtpagamento IS NULL AND pagdtvencimento < data_atual 

   GROUP BY setor

   UNION  

   SELECT 'PH' AS setor,

          SUM(pagvalorprincipal) AS total

   FROM pagamentos 

   WHERE pagdtpagamento IS NULL AND pagdtvencimento = data_atual 

   GROUP BY setor   

   UNION   

   SELECT 'PF' AS setor,

          SUM(pagvalorprincipal) AS total

   FROM pagamentos 

   WHERE pagdtpagamento IS NULL AND pagdtvencimento > data_atual  

   GROUP BY setor

) AS setores

GROUP BY setor

 

que me retorna tudo OK.

"PV";2505.61

"PH";106.65

"PF";4054.20

 

Quando não há dados em PH retorna: 

"PV";2505.61

"PF";4054.20

 

O que preciso, é que quando não houver dados, por exemplo em PH, retornar
assim:

"PV";2505.61

"PH";0.00

"PF";4054.20

 

Estou tentando com COALESCE, mas ainda não consegui.

 

Alguém tem alguma dica ?

 

Att,

Paulo.

 

 

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a