I wrote this code:
SELECT produtos.id AS id,
nome_produto AS Nome,
SUM(estoque.Estoque_produto) AS Estoque,
Periodicidade AS Periodicidade,
produtos.estoquemax_produto AS 'Média de venda mensal',
IF(SUM(estoque.Estoque_produto) > produtos.estoquemax_produto * 2, 'Muito alto', IF(SUM(estoque.Estoque_produto) > produtos.estoquemax_produto , 'Alto', IF(SUM(estoque.Estoque_produto) > (produtos.estoquemax_produto / IF(Periodicidade = 'M' , 1 , IF(Periodicidade = 'Q' , 2 , 4))) *0.5, 'Bom', IF(SUM(estoque.Estoque_produto) > (produtos.estoquemax_produto / IF(Periodicidade = 'M' , 1 , IF(Periodicidade = 'Q' , 2 , 4))) * 0.3, 'Baixo', IF(SUM(estoque.Estoque_produto) > 0, 'Crítico', 'Zerado'))))) AS Estado,
precos.Custo_produto AS Custo,
produtos.fornecedor_principal AS Fornecedor,
Descricao_produto AS 'Marca/Laboratório',
grupos_prod.Nome_grupo AS Grupo,
subgrupos.Nome AS Subgrupo
FROM genius.produtos
JOIN produtos_estoque AS estoque ON produtos.id = estoque.id_produto
JOIN produtos_precos AS precos ON produtos.id = precos.id_produto
JOIN subgruposprodutos AS subgrupos ON produtos.Id_grupo = subgrupos.Id
JOIN grupos_produtos AS grupos_prod ON subgrupos.id_grupo = grupos_prod.Id
WHERE Estado = 'Alto'
GROUP BY Id;
When I run it it returns me the error:
Error Code: 1054. Unknown column 'Status' in 'where clause'
The problem is that the State column is given as a result of this part:
IF(SUM(estoque.Estoque_produto) > produtos.estoquemax_produto * 2, 'Muito alto',
IF(SUM(estoque.Estoque_produto) > produtos.estoquemax_produto , 'Alto',
IF(SUM(estoque.Estoque_produto) > (produtos.estoquemax_produto /
IF(Periodicidade = 'M' , 1 , IF(Periodicidade = 'Q' , 2 , 4))) *0.5, 'Bom',
IF(SUM(estoque.Estoque_produto) > (produtos.estoquemax_produto /
IF(Periodicidade = 'M' , 1 , IF(Periodicidade = 'Q' , 2 , 4))) * 0.3, 'Baixo',
IF(SUM(estoque.Estoque_produto) > 0, 'Crítico', 'Zerado'))))) AS Estado,
That is, it is a result of a formula and not a column of a DB table. and the problem only appeared when I used the:
WHERE Estado = 'Alto'
Does anyone know how to solve this?