2013-07-02 5 views
0

Je veux afficher les jours dans un mois en regroupant par semaine, c'est ce que j'ai fait.Jours par semaine dans le mois

 
select date(subdate(table1.date1, interval (dayofweek(table1.date1)-2)day)) as OverWeek,count(table1.Id) 
from table1 
where YEAR(table1.date1) = YEAR(CURDATE()) 
AND MONTHNAME(table1.date1) = "June" 
GROUP BY OverWeek 

Mais pour Juin, il me montre 1 Juillet. Je suppose que le 1er juillet, c'est un lundi, mais je ne sais pas comment résoudre ce porblème.

Nous vous remercions à l'avance

Pour Juin pour

exemple
 
+------------+ 
| dt   | 
+------------+ 
| 2013-06-01 | 
| 2013-06-08 | 
| 2013-06-15| 
| 2013-06-22 | 
| 2013-06-29 | 
+------------+ 

et 01/06/2013 groupe 01.06.2013 jusqu'à 07.06.2013 et 08.06.2013 groupe 2013 -06 à 08 jusqu'à 14/06/2013 ....

Répondre

1

Compte tenu de cet ensemble de données ...

SELECT * FROM calendar WHERE year(dt) = 2013 AND MONTH(dt) = 6; 
+------------+ 
| dt   | 
+------------+ 
| 2013-06-01 | 
| 2013-06-02 | 
| 2013-06-03 | 
| 2013-06-04 | 
| 2013-06-05 | 
| 2013-06-06 | 
| 2013-06-07 | 
| 2013-06-08 | 
| 2013-06-09 | 
| 2013-06-10 | 
| 2013-06-11 | 
| 2013-06-12 | 
| 2013-06-13 | 
| 2013-06-14 | 
| 2013-06-15 | 
| 2013-06-16 | 
| 2013-06-17 | 
| 2013-06-18 | 
| 2013-06-19 | 
| 2013-06-20 | 
| 2013-06-21 | 
| 2013-06-22 | 
| 2013-06-23 | 
| 2013-06-24 | 
| 2013-06-25 | 
| 2013-06-26 | 
| 2013-06-27 | 
| 2013-06-28 | 
| 2013-06-29 | 
| 2013-06-30 | 
+------------+ 

... un hack comme cela pourrait fonctionner. ..

SELECT dt FROM calendar WHERE year(dt) = 2013 AND MONTH(dt) = 6 AND MOD(DAY(dt),7)=1 ; 
+0

J'ai éditer mon message –

+0

Bon, mais si c'est juillet ça ne marche pas –

+0

Oups. Édité. Je pense que cela devrait fonctionner maintenant - selon ma compréhension actuelle de la spécification (bien qu'il soit plus logique de gérer ce genre de chose dans le code au niveau de l'application) – Strawberry

0

SELECT COUNT (table1.Id), OverWeek DE ( SELECT *, où ANNÉE (table1.date1) = AN (CURDATE()) ET MONTHNAME (table1.date1) = "Juin" FROM Commandes ) o GROUP BY OverWeek;

Questions connexes