Je hebt gelijk:SQL maakt het niet gemakkelijk om ontbrekende gegevens te identificeren. De gebruikelijke techniek is om uw reeks (met gaten) samen te voegen met een volledige reeks, en die elementen in de laatste reeks te selecteren zonder een corresponderende partner in uw gegevens.
Dus de suggestie van @BenHoffstein het is een goede zaak om een vaste datumtafel bij te houden.
Afgezien daarvan kunt u die periode dynamisch maken met een tabel met gehele getallen
. Uitgaande van de integers
tabel heeft een kolom i
met getallen van minimaal 0 – 13, en dat uw tabel de datumkolom heeft met de naam 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;