Olá, Carlos, tudo bem?
Desde já peço desculpas pela demora em obter retorno.
Primeiramente, parabéns pela sua participação no fórum e por compartilhar o seu código.
Analisei a sua consulta e tenho um ponto de melhoria.
Ao fazer as condições do CASE
, na condição que categoriza o produto em 'Produto na média', você utiliza apenas a condição PRECO_DE_LISTA >= 7
, ou seja, o valor que é mais de 7, já é considerado produto na média. Considerando um valor de produto que custe, por exemplo, 15, ele é maior que 7, portanto, é um produto na média, mas note que temos também a condição PRECO_DE_LISTA >= 11.5
. Então, ele se encaixaria tamém como 'Produto pontecialmente caro'.
Ao rodar o script, ele irá satisfazer a primeira condição. Portanto, um 'Produto pontecialmente caro'.
Mas se por acaso a linhas estivessem trocadas, como no exemplo abaixo:
CASE WHEN PRECO_DE_LISTA >= 7 THEN 'Produto na média'
WHEN PRECO_DE_LISTA >= 11.5 THEN 'Produto pontecialmente caro'
Ele seria categorizado em 'Produto na média', pois já satisfaria a primeira condição. Logo, para ser mais assertivo devemos colocar um intervalo, para os produtos na média, que será PRECO_DE_LISTA >= 7 AND PRECO_DE_LISTA < 11.5
. Portanto, o seu código corrigido, ficará assim:
SELECT NOME_DO_PRODUTO, PRECO_DE_LISTA,
(CASE WHEN PRECO_DE_LISTA >= 11.5 THEN 'Produto pontecialmente caro'
WHEN PRECO_DE_LISTA >= 7 AND PRECO_DE_LISTA < 11.5 THEN 'Produto na média'
ELSE 'Produto abaixo da media' END) AS CLASSIFIACAO_MONETARIA
FROM TABELA_DE_PRODUTOS WHERE SABOR LIKE '%Limao'
Espero ter ajudado.
Caso surja alguma dúvida, fico à disposição.
Abraços e até mais!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!