2
I wrote that 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 returns me the error :
Error Code: 1054. Unknown column 'State' in 'Where clause'
The problem is that the Status column is given as a result of that 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,
i.e., it is the result of a formula and not a column of a BD table. and the problem only appeared when I used the:
WHERE Estado = 'Alto'
Someone knows how to fix this?
Thank you very much, that’s right. I only had a doubt, the "d" after parentheses should not need an AS?
– Roberto Gomes
and that way I could add some more JOIN? for example: JOIN d.id = other_table.id
– Roberto Gomes
you can use the AS without problem, it is also possible to do the JOIN. have this example with something similar
– Marco Souza
Thank you Goku also helped, if you need a force in Genki Dama we are ai lol kkk
– Roberto Gomes