1
respuesta

[Sugerencia] Ejercicio CASE

Alguien me puede cir poque mi no compila? :(

SELECT ENVASE, SABOR, CASE WHEN PRECIO_DE_LISTA >= 12 THEN "COSTOSO" WHEN PRECIO_DE_LISTA < 12 and PRECIO_DE_LISTA > 5 THEN "REGULAR" ELSE "BARATO" END AS PRECIO, MIN(PRECIO_DE_LISTA) AS PRECIO_MINIMO FROM tabla_de_productos WHERE TAMANO = "700 ML" GROUP BY ENVASE, CASE WHEN PRECIO_DE_LISTA >= 12 THEN "COSTOSO" WHEN PRECIO_DE_LISTA BETWEEN 5 AND 12 THEN "REGULAR" ELSE "BARATO" END ORDER BY ENVASE;

1 respuesta

¡Hola Luis!

Analizando tu código, parece que hay un pequeño error en la segunda parte del CASE en el GROUP BY. En lugar de utilizar BETWEEN para el rango de precios, estás utilizando un operador lógico AND.

Aquí tienes la corrección para tu consulta:

SELECT ENVASE, SABOR,
CASE
    WHEN PRECIO_DE_LISTA >= 12 THEN "COSTOSO"
    WHEN PRECIO_DE_LISTA < 12 and PRECIO_DE_LISTA > 5 THEN "REGULAR"
    ELSE "BARATO"
END AS PRECIO, MIN(PRECIO_DE_LISTA) AS PRECIO_MINIMO
FROM tabla_de_productos
WHERE TAMANO = "700 ML"
GROUP BY ENVASE,
CASE
    WHEN PRECIO_DE_LISTA >= 12 THEN "COSTOSO"
    WHEN PRECIO_DE_LISTA BETWEEN 5 AND 12 THEN "REGULAR"
    ELSE "BARATO"
END
ORDER BY ENVASE;

Con esta corrección, tu consulta debería compilar correctamente y obtener los resultados deseados. Recuerda que BETWEEN es el operador adecuado para definir un rango de valores.

Espero que esta respuesta te sea de ayuda. Si tienes alguna otra pregunta, no dudes en preguntar.

Un abrazo y buenos estudios :)

Si este post te ayudó, por favor, marca como solucionado ✓.