Tenta isso




SELECT setor,SUM(total) AS total

FROM

  (

  SELECT 'PV' AS setor,

          SUM(pagvalorprincipal) AS total

   FROM pagamentos

   WHERE pagdtpagamento IS NULL AND pagdtvencimento < CAST(NOW() AS DATE)

   GROUP BY setor

   UNION

   SELECT distinct 'PH' AS setor,

   CASE WHEN pagdtvencimento = CAST(NOW() AS DATE) then
SUM(pagvalorprincipal) ELSE '0.00' END AS total

   FROM pagamentos

   GROUP BY setor   ,pagdtvencimento

   UNION

   SELECT 'PF' AS setor,

          SUM(pagvalorprincipal) AS total

   FROM pagamentos

   WHERE pagdtpagamento IS NULL AND pagdtvencimento > CAST(NOW() AS DATE)

   GROUP BY setor

) AS setores

GROUP BY setor



Att—



Matheus Ferreira





De: pgbr-geral [mailto:[email protected]] Em nome
de Paulo
Enviada em: segunda-feira, 20 de junho de 2016 11:23
Para: 'Comunidade PostgreSQL Brasileira'
<[email protected]>
Assunto: [pgbr-geral] REF: Instrução SELECT com retorno zerado.



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.







---
Este email foi escaneado pelo Avast antivírus.
https://www.avast.com/antivirus
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a