Erstellen temporärer Datumstabellen in SQL Server 2000
Um eine temporäre Tabelle mit einem Datumsbereich in SQL Server 2000 zu erstellen, eine Alternative Ein Ansatz ist erforderlich, wenn Lücken in den verfügbaren Daten bestehen. Die folgende Lösung baut auf der gestellten Frage auf und bietet eine Schritt-für-Schritt-Anleitung zum Generieren einer solchen Tabelle.
Deklarieren Sie zunächst Variablen, um das Start- und Enddatum zu speichern:
declare $startDate set $startDate = select min(InsertDate) from customer declare $endDate set $endDate = select max(InsertDate) from customer
Erstellen Sie als Nächstes eine permanente Tabelle, um alle Daten innerhalb des gewünschten Bereichs zu speichern:
CREATE TABLE #Dates ( Month DATE, Trials INTEGER, Sales INTEGER )
Füllen Sie nun die Tabelle mit einer WHILE-Schleife, die das Datum um eins erhöht Tag bis zum Erreichen des Enddatums:
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
Gruppieren Sie abschließend die Ergebnisse nach Monat und fügen Sie die Platzhalterwerte in die temporäre Tabelle ein:
insert #dates select dbo.FirstOfMonth(InsertDate) as Month, 0 as Trials, 0 as Sales from customer group by dbo.FirstOfMonth(InsertDate)
Diese Lösung ermöglicht die Erstellung von eine temporäre Tabelle, die mit einem Datumsbereich gefüllt ist, auch wenn im Originaldatensatz Lücken vorhanden sind.
Das obige ist der detaillierte Inhalt vonWie erstelle ich eine temporäre Datumstabelle in SQL Server 2000 mit Datenlücken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!