Maison >base de données >tutoriel mysql >Comment générer une table de dates temporaire dans SQL Server 2000 avec des lacunes dans les données ?

Comment générer une table de dates temporaire dans SQL Server 2000 avec des lacunes dans les données ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-28 15:35:22215parcourir

How to Generate a Temporary Date Table in SQL Server 2000 with Gaps in Data?

Génération de tables de dates temporaires dans SQL Server 2000

Pour créer une table temporaire remplie d'une plage de dates dans SQL Server 2000, une alternative Cette approche est nécessaire lorsqu’il existe des lacunes dans les données disponibles. La solution suivante s'appuie sur la question présentée et fournit un guide étape par étape pour générer un tel tableau.

Tout d'abord, déclarez les variables pour contenir les dates de début et de fin :

declare $startDate set $startDate = select min(InsertDate) from customer
declare $endDate set $endDate = select max(InsertDate) from customer

Ensuite, créez un tableau permanent pour contenir toutes les dates dans la plage souhaitée :

CREATE TABLE #Dates (
  Month DATE,
  Trials INTEGER,
  Sales INTEGER
)

Maintenant, remplissez le tableau à l'aide d'une boucle WHILE qui incrémente la date d'un jour jusqu'à ce que la date de fin est atteinte :

DECLARE @dIncr DATE = $startDate
DECLARE @dEnd DATE = $endDate

WHILE ( @dIncr < @dEnd )
BEGIN
  INSERT INTO #Dates (Month, Trials, Sales) VALUES(@dIncr, 0, 0)
  SELECT @dIncr = DATEADD(DAY, 1, @dIncr )
END

Enfin, regroupez les résultats par mois et insérez les valeurs de placeholder dans la table temporaire :

insert #dates
select dbo.FirstOfMonth(InsertDate) as Month, 0 as Trials, 0 as Sales
from customer
group by dbo.FirstOfMonth(InsertDate)

Cette solution permet de créer une table temporaire tableau rempli d'une plage de dates, même lorsqu'il existe des lacunes dans l'ensemble de données d'origine.

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