1
resposta

[Dúvida] Resoluçã: Data Imposto

SELECT TRUNC(SUM(NF.IMPOSTO*(INF.PRECO*INF.QUANTIDADE))) AS CALC_IMPOSTO, TO_CHAR(DATA_VENDA, 'YYYY')
FROM NOTAS_FISCAIS NF
INNER JOIN ITENS_NOTAS_FISCAIS INF ON NF.NUMERO = INF.NUMERO
WHERE TO_CHAR(DATA_VENDA, 'YYYY') = '2016'
GROUP BY TO_CHAR(DATA_VENDA, 'YYYY');

Aqui está minha resolução, só gostaria de tirar uma dúvida. Por que não posso colocar ALIAS no select de data? ex:

SELECT TRUNC(SUM(NF.IMPOSTO*(INF.PRECO*INF.QUANTIDADE))) AS CALC_IMPOSTO, TO_CHAR(DATA_VENDA, 'YYYY') AS DATA_IMPOSTO
FROM NOTAS_FISCAIS NF
INNER JOIN ITENS_NOTAS_FISCAIS INF ON NF.NUMERO = INF.NUMERO
WHERE DATA_IMPOSTO = '2016'
GROUP BY DATA_IMPOSTO;
1 resposta

Oi Gabriel, tudo tranquilo?

A questão principal é que os aliases definidos no SELECT não podem ser usados diretamente no WHERE ou GROUP BY da mesma consulta. Isso acontece porque o WHERE e o GROUP BY são processados antes do SELECT na ordem de execução da query SQL.

Espero ter esclarecido e qualquer dúvida, compartilhe no fórum.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!