On Thu, Dec 18, 2014 at 8:08 PM, Danilo Silva <[email protected]>
wrote:
>
> Em 18 de dezembro de 2014 15:12, Matheus de Oliveira <
> [email protected]> escreveu:
>>
>> SELECT
>> count(CASE WHEN (orv_codemp = 1) AND (orv_codfilial = 1) END) AS
>> totorv,
>> count(CASE WHEN (orv_codemp = 1) AND (orv_codfilial = 1) AND
>> (orv_codfilial = 1) END) AS total,
>> ... -- adapte os demais
>> FROM orcamento_venda
>> WHERE (orv_codemp = 1) AND (orv_codfilial = 1) AND ... /* outros
>> filtros que casam com todos */
>>
>
>
> Valeu Matheus pela dica, apenas troquei o count pelo sum.
>
Ah... Realmente cometi um erro na sintaxe, esqueci de adicionar o "THEN
<expressão>":
SELECT
count(CASE WHEN (orv_codemp = 1) AND (orv_codfilial = 1) THEN 1
END) AS totorv,
Veja que se trocar o "count" pelo "sum" acima vai dar o mesmo resultado em
*quase* todos os casos, a exceção é quando não tem nenhum registro que casa
com a condição, nesse caso o "sum" vai retornar NULL enquanto o "count" vai
retornar 0 (zero). Veja qual é melhor para o seu caso, de fato o "sum" não
seria equivalente à sua consulta original.
Atenciosamente,
--
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral