Heim > Datenbank > MySQL-Tutorial > Wie erstelle ich einen umfassenden Datumsbereich mit ausgefüllten Nullwerten für fehlende Daten?

Wie erstelle ich einen umfassenden Datumsbereich mit ausgefüllten Nullwerten für fehlende Daten?

Barbara Streisand
Freigeben: 2024-12-19 03:24:08
Original
411 Leute haben es durchsucht

How to Generate a Comprehensive Date Range with Populated Zero Values for Missing Data?

Generieren eines umfassenden Datumsbereichs mit ausgefüllten Daten

In einer Datenbank ist es häufig erforderlich, Daten innerhalb eines bestimmten Datumsbereichs abzurufen. Wenn jedoch für bestimmte Daten Daten fehlen, kann es sinnvoll sein, Nullen anzuzeigen, anstatt die Spalten leer zu lassen. Dadurch wird sichergestellt, dass der gesamte Datumsbereich dargestellt wird, was eine umfassendere Ansicht der Daten ermöglicht.

Problem:

Sie haben eine Tabelle mit Datums- und Wertdaten sowie Bedarf um alle Daten innerhalb eines angegebenen Bereichs abzurufen. Wenn für ein bestimmtes Datum keine Zeile vorhanden ist, möchten Sie für alle Spalten Null anzeigen.

Lösung:

Dies kann erreicht werden, indem Sie mithilfe von eine Reihe von Datumsangaben erstellen einen rekursiven gemeinsamen Tabellenausdruck (CTE) und dann einen Left-Join mit der vorhandenen Datentabelle durchführen. Der CTE generiert eine Reihe von Datumsangaben innerhalb des angegebenen Bereichs. Der linke Join gleicht die generierten Daten mit den vorhandenen Zeilen ab und füllt alle fehlenden Werte mithilfe der Funktion ISNULL() mit Nullen auf.

;with d(date) as (
  select cast('10/01/2012' as datetime)
  union all
  select date+1
  from d
  where date < '10/15/2012'
  )
select t.ID, d.date CDate, isnull(t.val, 0) val
from d
left join temp t
       on t.CDate = d.date
order by d.date
OPTION (MAXRECURSION 0)
Nach dem Login kopieren

Die Option MAXRECURSION gibt die maximal zulässige Anzahl rekursiver Iterationen an. Da der Datumsbereich in diesem Fall klein ist (15 Tage), können wir ihn auf 0 setzen, um unbegrenzte Iterationen zu ermöglichen.

Durch Ausführen dieser Abfrage erhalten Sie einen vollständigen Datensatz, der alle Daten innerhalb des angegebenen Zeitraums enthält Reichweite. Alle fehlenden Daten werden mit Nullen aufgefüllt, um eine umfassende Darstellung der Daten zu ermöglichen.

Das obige ist der detaillierte Inhalt vonWie erstelle ich einen umfassenden Datumsbereich mit ausgefüllten Nullwerten für fehlende Daten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage