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