1
resposta

[Dúvida] Por que meu ALIAS não funciona para HAVING, mas sim para ORDER BY?

SELECT CODIGO_DO_PRODUTO, SUM(QUANTIDADE) AS [Totais de vendas] 
FROM [dbo].[ITENS_NOTAS_FISCAIS] 
GROUP BY CODIGO_DO_PRODUTO 
HAVING SUM(QUANTIDADE) >= 394000
ORDER BY [Totais de vendas] DESC;

Se eu digitar HAVING [Totais de vendas] >= 394000 em HAVING SUM(QUANTIDADE) >= 394000, resulta em:

Mensagem 207, Nível 16, Estado 1, Linha 100
Nome de coluna 'Totais de vendas' inválido.

Mas porque não resultou em erro para o ORDER BY?

1 resposta

Akhenaton,

Reza a lenda que a cláusula HAVING é avaliada antes do SELECT, então o servidor ainda não sabe sobre esse alias...

=====================================

Why can't I use alias in a count(*) "column" and reference it in a having clause?

https://stackoverflow.com/questions/2068682/why-cant-i-use-alias-in-a-count-column-and-reference-it-in-a-having-clause

=====================================

[]'s,

Fabio I.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software