Maison > base de données > tutoriel mysql > Comment puis-je regrouper les résultats SQL par mois et par année dans un format lisible par l'homme ?

Comment puis-je regrouper les résultats SQL par mois et par année dans un format lisible par l'homme ?

DDD
Libérer: 2024-12-29 02:07:17
original
841 Les gens l'ont consulté

How Can I Group SQL Results by Month and Year in a Human-Readable Format?

Regroupement des résultats SQL par mois et année

Lorsque vous travaillez avec des bases de données SQL, il devient souvent nécessaire de regrouper les données par périodes, telles que des mois ou des années. Par défaut, la clause GROUP BY de SQL regroupe les lignes en fonction de mois ou d'années individuels. Cependant, vous pouvez rencontrer des situations dans lesquelles vous devez afficher les résultats dans un format plus lisible par l'homme, tel que « mois-année ».

Problème : affichage du mois et de l'année dans des résultats groupés

Supposons que vous ayez une requête qui regroupe les données par mois et par année et affiche les résultats comme suit :

SELECT MONTH(date) AS Mjesec, SUM(marketingExpense) AS SumaMarketing, SUM(revenue) AS SumaZarada 
FROM [Order]
WHERE (idCustomer = 1) AND (date BETWEEN '2001-11-3' AND '2011-11-3')
GROUP BY MONTH(date), YEAR(date)
Copier après la connexion

Cette requête renverra des résultats avec la première colonne affichant uniquement le mois, par exemple, "9". L'objectif est de modifier la requête pour afficher le mois et l'année dans un format combiné, tel que "9-2011".

Solution : Casting des valeurs de date

Pour y parvenir, vous pouvez utiliser la fonction CAST pour convertir les valeurs du mois et de l'année en chaînes :

SELECT CAST(MONTH(date) AS VARCHAR(2)) + '-' + CAST(YEAR(date) AS VARCHAR(4)) AS Mjesec, ...
Copier après la connexion

En convertissant les valeurs du mois et de l'année sous forme de chaînes, vous pouvez les concaténer en une seule chaîne qui combine le mois et l'année dans le format "mois-année" souhaité.

Solution alternative : zéros non significatifs

Si vous avez besoin de zéros non significatifs pour la valeur du mois, vous pouvez utiliser la syntaxe suivante :

GROUP BY 
  CAST(YEAR(date) AS VARCHAR(4)) + '-' + right('00' + CAST(MONTH(date) AS VARCHAR(2)), 2) 
Copier après la connexion

Cette expression garantira que toutes les valeurs mensuelles comportent des zéros non significatifs, rendant les résultats plus cohérents et visuellement attrayants.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal