Comando SELECT. Como usar campo criado na cláusula WHERE?
24/11/2014
0
select sum(entrega.quant) as quant, medicacao.nome, medicacao.quant, ((sum(entrega.quant) - medicacao.quant) * 1.1) as pedido from entrega, medicacao where medicacao.id = entrega.id_medicacao and entrega.data <= current_date and entrega.data >= current_date - 30 group by medicacao.nome, medicacao.quant
quero usar a seguinte linha:
where pedido > 0
sendo que não tenho uma coluna pedido, ela é criada. e já tentei usar assim:
where ((sum(entrega.quant) - medicacao.quant) * 1.1) > 0
porém, recebo um erro que diz, que não posso usar o comando agrupado em cláusula WHERE.
Alguém pode me ajudar?
Italo Pereira
Posts
24/11/2014
William
24/11/2014
Italo Pereira
Postei nos 4 bancos porque acho que o comando SQL é semelhante e sem muita diferença.
Abraço.
24/11/2014
William
select sum(entrega.quant) as quant, medicacao.nome, medicacao.quant, ((sum(entrega.quant) - medicacao.quant) * 1.1) as pedido from entrega, medicacao where medicacao.id = entrega.id_medicacao and entrega.data <= current_date and entrega.data >= current_date - 30 group by medicacao.nome, medicacao.quant having ((sum(entrega.quant) - medicacao.quant) * 1.1) > 0
Montei copiando os dados que você passou no primeiro post!
24/11/2014
Italo Pereira
muito obrigado pela ajuda.
vou aproveitar e estudar mais sobre o comando HAVING.
valewww.
29/12/2014
Marisiana Battistella
select result.quant, result.nome, result.quant_medicacao, result.pedido from (select sum(entrega.quant) as quant, medicacao.nome, medicacao.quant as quant_medicacao, ((sum(entrega.quant) - medicacao.quant) * 1.1) as pedido from entrega join medicacao on medicacao.id = entrega.id_medicacao where entrega.data <= current_date and entrega.data >= current_date - 30 group by medicacao.nome, medicacao.quant ) result where result.pedido > 0
Testa as duas opções e veja qual executa com melhor performance...
Clique aqui para fazer login e interagir na Comunidade :)