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 ?

Comment générer une table de plage de dates complète dans SQL Server 2000 malgré les lacunes dans les données sources ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-21 07:13:09508parcourir

How to Generate a Complete Date Range Table in SQL Server 2000 Despite Gaps in Source Data?

Génération d'une table de plage de dates temporaire dans SQL Server 2000

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 :

  1. 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
  2. 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
    );
  3. 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn