Pessoal, estou migrando meu sistema do MySQL para o Postgres e de vez em quando 
dou uma apanhadinha nos selects...
No MySQL eu posso fazer o select abaixo que ele aceita

SELECT 
  DATA_VENDA, 
  SUM(VALOR) AS TOTAL 
FROM TABELA
WHERE (DATA_VENDA > '2011-01-01')
GROUP BY DATA_VENDA
HAVING (TOTAL >= 100)

Veja que no Having eu faço referencia ao apelido "TOTAL"
Bem, eu sei que poderia fazer (HAVING SUM(VALOR) >= 100)
Mas o detalhe é que as vezes temos um SUM bem complexo e ficaria "ruim" colocar 
tudo denovo no Having

Pergunta: Existe algum forma de referenciar o TOTAL no having sem ter que 
reescrever todo o SUM???


Pra completar, minha dúvida surgiu por causa do select abaixo:

select a.pedido, a.valor_pedido,
coalesce((select sum(valor_ven * qtd_item) from mv_vendas_itens
where (obs not in('C'))
and(pedido = a.pedido)
), 0) as val_itens,

coalesce((select sum(val_doc) from mv_vendas_recebe
where (obs not in('C','G'))
and(pedido = a.pedido)
and(importado = 'N')), 0) as val_recebe,

coalesce((select sum(val_doc) from mv_contas_pagrec
where (obs not in('C','G'))
and(pedido = a.pedido)
), 0) as val_contas_recebe

from mv_vendas a
where (a.obs not in('C'))

group by a.pedido, 2
having (valor_pedido <> val_itens)
or(val_recebe <> valor_pedido)
or(val_contas_recebe <> valor_pedido)

Agora se tiverem dicas para reescrever este select de tal modo que fica melhor, 
toda dica é bem vinda...
A ideia é verificar (confrontar) os valores lançados no pedido, ítens e contas 
a receber


Obrigado antecipadamente e desculpem o tamanho do email :)


Marcelo Silva
------------------------------------------------
msn: [email protected]
Tel.: (11) 2962-7390
Cel.: (11) 9693-4251

Programador: Delphi, PHP
Linux Kubuntu User number is # 24362




_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a