Mysql
 sql >> база данни >  >> RDS >> Mysql

SQL заявка, която връща всички дати, които не са използвани в таблица

Прав сте — SQL не улеснява идентифицирането на липсващи данни. Обичайната техника е да присъедините вашата последователност (с пропуски) срещу пълна последователност и да изберете тези елементи в последната последователност без съответен партньор във вашите данни.

И така, предложение на @BenHoffstein поддържането на постоянна таблица с дати е добре.

С изключение на това, можете динамично да създадете този период от време с таблица с цели числа . Приемайки integers таблицата има колона i с числа най-малко 0 – 13 и че вашата таблица има колона за дата с име 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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получите размера на mysql базата данни?

  2. Поддръжка на PDO за множество заявки (PDO_MYSQL, PDO_MYSQLND)

  3. CakePHP заявка най-близката географска ширина и дължина от базата данни

  4. Ефективно избиране на най-близкия (разстояние) запис от база данни

  5. Обединяване на 3 таблици/заявки чрез MS Access Union Query