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