Em 12/09/12, Eduardo Almeida<edua...@web2solutions.com.br> escreveu:
>>> Veja CASE em
>>> http://www.postgresql.org/docs/9.1/static/functions-conditional.html
>
> Jean, mas CASE seria para retornar um valor quando uma condição for
> satisfeita ... realmente não vi como fazer isso usando CASE .. mas obrigado
>
>
>
>
>
>>________________________________
>> De: Eduardo Almeida <edua...@web2solutions.com.br>
>>Para: Comunidade PostgreSQL Brasileira
>><pgbr-geral@listas.postgresql.org.br>
>>Enviadas: Quarta-feira, 12 de Setembro de 2012 23:28
>>Assunto: [pgbr-geral] Soma de coluna com where diferentes
>>
>>Olá senhores, alguma alma caridosa poderia me ajudar a resolver essa
>>questão? Não precisa ser a solução, pode ser algo para leitura. Já quebrei
>>cabeça aqui e não consigo chegar numa solução.
>>
>>Preciso somar todos os valores de uma coluna em circunstâncias diferentes
>>na
>>mesma cláusula SQL. Para retratar melhor minha necessidade, vou esboçar a
>>soma abaixo através de duas cláusulas, vamos lá
>>
>>        SELECT SUM(total) as receitas_consolidadas
>>        FROM tbl_financeiro_fluxo_de_caixa
>>        WHERE id_conta = ? AND tipo_de_operacao = 'C' AND situacao =
>>'Recebido' AND date_part('month', data_do_recebimento) = 1
>>        group by total, data_do_recebimento;
>>
>>        SELECT SUM(total) as despesas_liquidadas
>>        FROM tbl_financeiro_fluxo_de_caixa
>>        WHERE id_conta = ? AND tipo_de_operacao = 'D' AND situacao =
>> 'Pago'
>>AND date_part('month', data_do_pagamento) = 1
>>        group by total, data_do_pagamento;
>>
>>Eu gostaria de otimizar isso e colocar tudo numa só cláusula.
>>
>>Obrigado
>>
>>Eduardo Almeida - Engenharia de Software
>>edua...@web2solutions.com.br - 27 3361-2050 / 27 9839 3755
>>
>>_______________________________________________
>>pgbr-geral mailing list
>>pgbr-geral@listas.postgresql.org.br
>>https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>>
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>

Tente algo do tipo:

SELECT
SUM(CASE (id_conta = ? AND tipo_de_operacao = 'C' AND situacao =
'Recebido' AND date_part('month', data_do_recebimento) = 1) THEN total
ELSE 0 ) as receitas_consolidadas,
SUM(CAES(id_conta = ? AND tipo_de_operacao = 'D' AND situacao = 'Pago'
AND date_part('month', data_do_pagamento) = 1) THEN total else 0) as
despesas_liquidadas
FROM tbl_financeiro_fluxo_de_caixa;


Osvaldo
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a