Fabrízio, Bom Dia!
Os seus exemplos foram de grande valia.
Mas, aproveitando a sua experiência, gostaria de perguntar mais uma coisa
(se possível a resposta.):
   A clausula HAVING tem custo significativo em relação a performace?
conforme
   o número de registros lidos!

Muito Obrigado.

2009/8/29 Fabrízio de Royes Mello <[email protected]>

> 2009/8/29 MIGUEL JOSE DE LIMA <[email protected]>
>
>> Pessoal,
>> Em alguns produtos da M.S. eu podia usar o resultado de uma expressão na
>> clausula WHERE e
>> no PostgreSQL eu não consigo, dando erro que o campo não existe!
>> Eu pergunto: É possível? Existe alguma referencia que possa ler?
>>
>>
> Miguel,
>
> O Oswaldo respondeu já respondeu que da forma que tu deseja não é possível,
> mas posso sugerir algumas alternativas??
>
>
>
>
>> Ex.: SELECT c1, c2, COUNT(id) as qtde FROM tabela WHERE qtde > 1
>>        GROUP BY c1, c2 ...;
>>        *** (erro qtde - não existe)
>>
>
>
> No primeiro exemplo eu faria o seguinte:
>
> SELECT c1, c2, COUNT(id) as qtde FROM tabela
> GROUP BY c1, c2 ...
> HAVING COUNT(id) > 1;
>
>
>
>
>> ou
>>        SELECT c1,
>>                      c2,
>>                     (SELECT ... saldoanterior FROM tbsaldo... WHERE ano =
>> '2008') AS c3,
>>                     CASE c3 ... AS c4 ... FROM tabela;
>>         *** Neste caso eu gostaria de testar SE o RESULTADO DE c3 É NULO
>>              (pode não existir dados p/ saldo anterior) e criar o campo c4
>> com um CASE.
>>               ou seja, se c3 IS NULL retorna 0.000 se não retorna c3.
>>              ---
>>
>>
> E no segundo exemplo eu utilizaria uma sub-query para fazer o que você
> precisa, mais ou menos assim:
>
> SELECT a.*,
>               COALESCE(a.c3, 0) AS c4
> FROM (
>    SELECT c1,
>                  c2,
>                  (SELECT ... saldoanterior FROM tbsaldo... WHERE ano =
> '2008') AS c3
>        FROM tabela
> ) AS a ;
>
> Espero ter ajudado.
>
> Cordialmente,
>
> --
> Fabrízio de Royes Mello
> >> Blog sobre TI: http://fabriziomello.blogspot.com
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a