Ich habe eine Tabelle mit Datensätzen für jede aufeinander folgende Stunde. Jede Stunde hat einen Wert. Ich möchte eine T-SQL-Abfrage, um die fehlenden Datensätze (fehlende Stunden, die Lücken) abzurufen. Also für die DDL unten, sollte ich einen Rekord für fehlende Stunde 04/01/2010 02:00 Uhr (vorausgesetzt, Datumsbereich ist zwischen dem ersten und letzten Datensatz). Verwenden Sie SQL Server 2005. Bevorzugen Sie eine Set-basierte Abfrage.Finden von Lücken (fehlende Datensätze) in Datenbankeinträgen mit SQL
DDL:
CREATE TABLE [Readings](
[StartDate] [datetime] NOT NULL,
[SomeValue] [int] NOT NULL
)
INSERT INTO [Readings]([StartDate], [SomeValue])
SELECT '20100401 00:00:00.000', 2 UNION ALL
SELECT '20100401 01:00:00.000', 3 UNION ALL
SELECT '20100401 03:00:00.000', 45
OMG .... das ist phänomenal, wie schnell Sie diese geschrieben. Einfach toll. – Raja
Ich kippe oben oder unten abstimmen dies becuase Im Blick auf diese sql going .. gaaaaahhahahaaaa –
Das ist eine süße Abfrage. Ich habe nie realisiert, dass "WITH" rekursiv verwendet werden könnte. – RedFilter