Maison > base de données > tutoriel mysql > Comment afficher tous les mois dans une plage de dates, y compris ceux avec des valeurs nulles en SQL ?

Comment afficher tous les mois dans une plage de dates, y compris ceux avec des valeurs nulles en SQL ?

Barbara Streisand
Libérer: 2024-10-31 19:33:02
original
735 Les gens l'ont consulté

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

Afficher tous les mois dans une plage de dates, y compris ceux avec des valeurs nulles

En programmation SQL, la sélection de données spécifiques dans une période de dates donnée peut être difficile, surtout lorsqu'il s'agit de valeurs manquantes. Ce problème survient lorsque l'on tente de calculer des moyennes mensuelles pour tous les mois entre deux dates, et les mois sans valeurs ne sont pas affichés.

Solution

Pour résoudre ce problème, une solution complète une approche utilisant une « table de dates » est recommandée. Ce tableau contient tous les mois compris dans la plage de dates requise. En effectuant un LEFT JOIN entre la table de dates et la table de données réelle, tous les mois, y compris ceux avec des valeurs nulles, seront affichés.

Requête SQL

Ce qui suit La requête modifiée intègre la technique LEFT JOIN :

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`
Copier après la connexion

Cette requête garantit que tous les mois compris dans la plage spécifiée sont affichés, y compris les mois avec des valeurs nulles. En sélectionnant des champs supplémentaires dans « dateTable », vous pouvez facilement rapporter des données selon différentes périodes, telles que des trimestres ou des jours de la semaine.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal