1
resposta

Redesenhe esta consulta usando subconsultas.

select
   *
from
(select 
    tp.nome_do_produto,
    nf.codigo_do_produto,
    sum(nf.quantidade) quantidade

from itens_notas_fiscais nf
inner join tabela_de_produtos tp
on tp.codigo_do_produto = nf.codigo_do_produto
group by
     tp.nome_do_produto,
     nf.codigo_do_produto
order by
    tp.nome_do_produto,
    nf.codigo_do_produto) qt
where qt.quantidade >= 394000;

Minha query so da certo quando eu não levo os campos da minha sub consulta pro meu select no nivel superior, é possível eu levar nome_do_produto e quantidade pro nível superior mesmo eles ja tendo um alias nativo na subconsulta ?

1 resposta

Oi Jhonatan! Tudo certo?

Desculpe por demorar a te responder.

É possível, sim, levar os campos da subconsulta à consulta principal. Para isso, é possível usar o alias ou o nome real do campo. Apenas é necessário que se referencie a tabela que foi gerada na subconsulta: a qt, no seu caso. Para levar a quantidade e o nome do produto para a consulta principal, utilizando um alias, o código ficaria assim:

select
   qt.nome, qt.quantidade
from
(select 
    tp.nome_do_produto nome,
    nf.codigo_do_produto codigo,
    sum(nf.quantidade) quantidade

from itens_notas_fiscais nf
inner join tabela_de_produtos tp
on tp.codigo_do_produto = nf.codigo_do_produto
group by
     tp.nome_do_produto,
     nf.codigo_do_produto
order by
    tp.nome_do_produto,
    nf.codigo_do_produto) qt
where qt.quantidade >= 394000;

Espero ter ajudado, Jhonatan.

Abraços!