sql >> Base de Datos >  >> RDS >> Mysql

Consulta SQL que devuelve todas las fechas no utilizadas en una tabla

Tiene razón:SQL no facilita la identificación de datos faltantes. La técnica habitual es unir su secuencia (con espacios) contra una secuencia completa y seleccionar esos elementos en la última secuencia sin un socio correspondiente en sus datos.

Entonces, la sugerencia de @BenHoffstein mantener una tabla de fechas permanente es una buena idea.

Aparte de eso, puede crear dinámicamente ese rango de fechas con un tabla de enteros . Asumiendo los integers la tabla tiene una columna i con números del 0 al 13 como mínimo, y que su tabla tenga su columna de fecha llamada datestamp :

   SELECT candidate_date AS missing
     FROM (SELECT CURRENT_DATE + INTERVAL i DAY AS candidate_date
             FROM integers
            WHERE i < 14) AS next_two_weeks
LEFT JOIN my_table ON candidate_date = datestamp
    WHERE datestamp is NULL;