Heim > Datenbank > MySQL-Tutorial > Wie zeige ich mit SQL alle Daten in einem Bereich an und fülle fehlende Werte mit Null auf?

Wie zeige ich mit SQL alle Daten in einem Bereich an und fülle fehlende Werte mit Null auf?

DDD
Freigeben: 2024-12-22 16:47:10
Original
600 Leute haben es durchsucht

How to Display All Dates in a Range and Fill Missing Values with Zero Using SQL?

Entwickeln einer Abfrage zum Anzeigen aller Daten und zum Auffüllen fehlender Werte mit Null

Bei der Arbeit mit Datumsbereichen ist es oft notwendig, dies zu berücksichtigen fehlende Datenpunkte. Dieser umfassende Leitfaden bietet eine Lösung für das Problem, alle Daten zwischen zwei bestimmten Daten anzuzeigen und fehlenden Zeilen Nullwerte zuzuweisen.

Um dieses Problem zu beheben, können wir einen allgemeinen Tabellenausdruck (CTE) namens „d“ nutzen. . Dieser CTE generiert eine Reihe von Datumsangaben innerhalb des angegebenen Bereichs. Anschließend können wir eine Linksverknüpfung zwischen dem CTE und der ursprünglichen „temp“-Tabelle durchführen, um das gewünschte Ergebnis zu erhalten.

Hier ist die geänderte Abfrage:

;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) -- use this if your dates are >99 days apart
Nach dem Login kopieren

Diese überarbeitete Abfrage stellt sicher, dass alles fehlt Datumsangaben werden erfasst und die entsprechende Spalte „val“ wird mit Nullen gefüllt. Die Anweisung „OPTION (MAXRECURSION 0)“ wurde hinzugefügt, um Situationen zu behandeln, in denen der Datumsbereich 99 Tage überschreitet.

Das obige ist der detaillierte Inhalt vonWie zeige ich mit SQL alle Daten in einem Bereich an und fülle fehlende Werte mit Null auf?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage