2010-06-01 4 views
0

Il y a quelques fois, j'ai demandé comment faire pour afficher les données par mois, je dois dire une mauvaise explication parce que je viens de comprendre que ce n'est pas ce que je veux:MySQL: recevoir des données seulement par mois

Voici ce que je obtenu:

$req1 = ... 
AND v.date > (DATE_SUB(CURDATE(), INTERVAL 2 MONTH)) 
AND v.date < (DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) 

$req2= ... 
AND v.date > (DATE_SUB(CURDATE(), INTERVAL 3 MONTH)) 
AND v.date < (DATE_SUB(CURDATE(), INTERVAL 2 MONTH)) 

Mais le problème, imaginez que vous êtes aujourd'hui le juin 10e il va calculer toutes les données entre le

  • 10 juin au 10 mai
  • alors le 10 mai jusqu'au 10 avril ...

Mais ce que je veux est des données:

  • du 1er mai au 1 er juin,
  • du 1 juin au 1 juillet ...

Voyez-vous ce que je veux dire?

Répondre

2

ET MOIS (v.date) = 6 ET DE L'EXERCICE (v.date) = 2009 [pour obtenir tout en Juin 2009]

+0

Ok, il fonctionne très bien;) grâce;) –

3

Vous pouvez utiliser:

WHERE YEAR(date) = 2010 AND MONTH(date) = 5 

pour obtenir toutes les lignes où la date est dans l'année 2010 et le cinquième mois de l'année.

+0

Fermer, mais pas Pepsi;) – barrycarter

+0

vôtre ne fonctionne pas, je suis désolé: D –

0

sélectionnez un mois (de v.date), année (v.date), somme (somedatacolumn) du groupe thetable par mois (v.date), année (v.date);

remplacer somme avec tout ce que vous faites le calcul