Maison >base de données >tutoriel mysql >Comment générer une table de plage de dates complète dans SQL Server 2000 malgré les lacunes dans les données sources ?
Votre obligation de créer une table temporaire avec des dates allant de $startDate à $endDate et un espace réservé supplémentaire de valeur zéro Les colonnes présentent un défi en raison de lacunes potentielles dans les dates d'insertion de la table client.
Pour surmonter ce problème, considérez les points suivants approche :
Déclarer les variables de plage : Comme vous l'avez déjà fait, utilisez les déclarations suivantes pour capturer les dates d'insertion minimales et maximales :
declare $startDate set $startDate = select min(InsertDate) from customer declare $endDate set $endDate = select max(InsertDate) from customer
Créer une table de dates factice : En utilisant le schéma de votre table temporaire, créez une table factice avec des dates de $startDate à $endDate à l'aide d'une boucle :
CREATE TABLE #dates ( Month DATE, Trials INT DEFAULT 0, Sales INT DEFAULT 0 );
Remplissez la table de dates factices : Pour garantir l'exhaustivité, utilisez un curseur pour parcourir la plage de dates de $startDate à $endDate, en insérant chaque date dans le mannequin table :
DECLARE @d DATE = $startDate; WHILE @d <= $endDate BEGIN INSERT INTO #dates (Month) VALUES (@d); SET @d = DATEADD(DAY, 1, @d); END;
Cette approche génère dynamiquement une plage complète de dates dans la plage spécifiée, quelles que soient les lacunes dans la table client. Vous pouvez ensuite utiliser cette table factice comme source pour remplir votre table de plage de dates temporaire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!