Bonjour,
J'ai besoin d'effectuer un CASE sur un champ DateTime afin d'afficher le nom du mois, et parallèlement j'ai besoin de regrouper avec un GROUP BY les résultats sur ce même champ DateTime, par mois de l'année. Voilà ma seule requête qui fonctionne :
Sauf que... Les résultats sont regroupés par jour, pas par mois de l'année, c'est-à-dire sur l'ensemble du champ DateTime et non pas seulement sur le mois et l'année.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 SELECT COUNT(*), 'Periode' = CASE DATEPART(m, [StatDate]) WHEN 1 THEN 'Janvier ' WHEN 2 THEN 'Février ' WHEN 3 THEN 'Mars ' WHEN 4 THEN 'Avril ' WHEN 5 THEN 'Mai ' WHEN 6 THEN 'Juin ' WHEN 7 THEN 'Juillet ' WHEN 8 THEN 'Août ' WHEN 9 THEN 'Septembre ' WHEN 10 THEN 'Octobre ' WHEN 11 THEN 'Novembre ' WHEN 12 THEN 'Décembre ' END + CAST(DATEPART(yyyy, [StatDate]) AS VARCHAR) FROM [MATABLE] GROUP BY [StatDate];
Vous allez me dire pas étonnant avec ce que tu as mis dans ta clause GROUP BY, et je vous répondrai que rien d'autre de ce que j'ai pu essayer (effectuer un DATEPART, recopier l'ensemble du CASE déjà présent dans le SELECT, ...) n'a bien voulu fonctionné.
Donc je suis ouvert à toutes suggestions.
N.B : GROUP BY 2 n'existe pas sur SQL Server.![]()
Partager