Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Solución query

SELECT NOMBRE, FECHA_DE_NACIMIENTO, 
CASE 
    WHEN  EXTRACT(YEAR FROM FECHA_DE_NACIMIENTO) >= 1990 THEN 'VIEJO'
    WHEN  EXTRACT(YEAR FROM FECHA_DE_NACIMIENTO) > 1990 AND EXTRACT(YEAR FROM FECHA_DE_NACIMIENTO)<  1995 THEN 'JOVEN'
    WHEN  EXTRACT(YEAR FROM FECHA_DE_NACIMIENTO) > 1995 THEN 'NINO'
    ELSE 'ANTIGUEDAD'
        END AS ANIO 
    FROM TABLA_DE_CLIENTES;
1 respuesta

Hola Laura, espero que estés bien

Parece que estás tratando de clasificar a los clientes según su año de nacimiento, pero hay un pequeño error en tu consulta que afecta la clasificación. La lógica en tu CASE tiene un problema en el orden y las condiciones. Aquí te dejo una versión corregida de tu consulta:

SELECT NOMBRE, FECHA_DE_NACIMIENTO, 
CASE 
    WHEN EXTRACT(YEAR FROM FECHA_DE_NACIMIENTO) < 1990 THEN 'VIEJO'
    WHEN EXTRACT(YEAR FROM FECHA_DE_NACIMIENTO) >= 1990 AND EXTRACT(YEAR FROM FECHA_DE_NACIMIENTO) <= 1995 THEN 'JOVEN'
    WHEN EXTRACT(YEAR FROM FECHA_DE_NACIMIENTO) > 1995 THEN 'NINO'
    ELSE 'ANTIGUEDAD'
END AS ANIO 
FROM TABLA_DE_CLIENTES;

En esta corrección, he ajustado las condiciones para que coincidan con lo que se pide en el ejercicio:

  • "Viejos" para los nacidos antes de 1990.
  • "Jóvenes" para los nacidos entre 1990 y 1995, inclusive.
  • "Niños" para los nacidos después de 1995.

Espero que esto solucione el problema. ¡Espero haber ayudado y buenos estudios!