Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie zeige ich alle Monate in einem Datumsbereich an, einschließlich der Monate mit Nullwerten in SQL?

Barbara Streisand
Freigeben: 2024-10-31 19:33:02
Original
674 Leute haben es durchsucht

How to Show All Months in a Date Range, Including Those with Zero Values in SQL?

Anzeigen aller Monate innerhalb eines Datumsbereichs, einschließlich der Monate mit Nullwerten

In der SQL-Programmierung können bestimmte Daten innerhalb eines bestimmten Datumsbereichs ausgewählt werden kann eine Herausforderung sein, insbesondere wenn es um fehlende Werte geht. Dieses Problem tritt auf, wenn versucht wird, monatliche Durchschnittswerte für alle Monate zwischen zwei Daten zu berechnen, und Monate ohne Werte nicht angezeigt werden.

Lösung

Um dieses Problem zu beheben, eine umfassende Der Ansatz mit einer „Datumstabelle“ wird empfohlen. Diese Tabelle enthält alle Monate innerhalb des erforderlichen Datumsbereichs. Durch Ausführen eines LEFT JOIN zwischen der Datumstabelle und der tatsächlichen Datentabelle werden alle Monate, einschließlich der Monate mit Nullwerten, angezeigt.

SQL-Abfrage

Das Folgende Die geänderte Abfrage beinhaltet die LEFT JOIN-Technik:

SELECT `DT`.`myYear`, `DT`.`myMonth`, 
AVG(`myTable`.`value1`) AS `avg_value_1`, 
AVG(`myTable`.`value2`) AS `avg_value_2`
FROM `dateTable` AS `DT`
LEFT JOIN `myTable`
ON `DT`.`myDate` = `myTable`.`save_date`
WHERE `DT`.`myDate` BETWEEN '2009-01-01' AND '2009-07-01'
GROUP BY `DT`.`myYear`, `DT`.`myMonth`
Nach dem Login kopieren

Diese Abfrage stellt sicher, dass alle Monate innerhalb des angegebenen Bereichs angezeigt werden, einschließlich der Monate mit Nullwerten. Durch die Auswahl zusätzlicher Felder aus der „dateTable“ können Sie ganz einfach Daten nach unterschiedlichen Zeiträumen melden, beispielsweise nach Quartalen oder Wochentagen.

Das obige ist der detaillierte Inhalt vonWie zeige ich alle Monate in einem Datumsbereich an, einschließlich der Monate mit Nullwerten in SQL?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!