sql >> Database >  >> RDS >> Mysql

Genereer gegevens voor het bereik van datums, inclusief de datums die niet in de gegevens voorkomen

Een extra kalendertabel zal goed werken. De eenvoudigst mogelijke kalendertabel is een enkele kolom met datums.

create table calendar (
    cal_date date primary key
);

U kunt een spreadsheet of SQL gebruiken om het te vullen. Een outer join erop zal de datums binnenhalen die niet in uw gegevens voorkomen. Beperk machtigingen met GRANT en REVOKE, en gebruik alle middelen die nodig zijn om ervoor te zorgen dat de datums die u verwacht daar te zijn, er ook echt in staan. Ik voer dagelijks een rapport uit op mijn server dat ervoor zorgt dat er 'n' rijen zijn en de vroegste en laatste datums verifieert.

Op sommige platforms kunt u direct een reeks datums genereren en deze direct of in een CTE gebruiken. PostgreSQL heeft daar functies voor; Ik weet niet of MySQL dat doet. Ze zijn echter niet moeilijk om te schrijven, als je ze zelf wilt schrijven.



  1. Moeten primaire sleutels van MySQL-tabellen worden weergegeven?

  2. Een normale query converteren naar een kruistabelquery in Access

  3. een SQL-rij hashen?

  4. MySQL - Hoe rijen te selecteren met de maximale waarde van een veld