sql >> Databasteknik >  >> RDS >> Mysql

SQL-fråga som returnerar alla datum som inte används i en tabell

Du har rätt – SQL gör det inte lätt att identifiera saknade data. Den vanliga tekniken är att sammanfoga din sekvens (med luckor) mot en komplett sekvens och välja dessa element i den senare sekvensen utan en motsvarande partner i dina data.

Så @BenHoffsteins förslag att behålla en permanent datumtabell är bra.

Utöver det kan du dynamiskt skapa det datumintervallet med en heltalstabell . Om vi ​​antar integers tabellen har en kolumn i med siffror minst 0 – 13, och att din tabell har sin datumkolumn med namnet 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. JDBC MySQL-anslutning med Unix Socket

  2. Datamodell för bröllopsorganisation

  3. T-SQL villkorlig beställning av

  4. mysql error 1364 Fältet har inga standardvärden