Page 1 sur 1

SELECT par mois

Posté : 06 févr. 2007, 11:54
par dunbar
Bonjour,

Je suis occupée à faire un fichier qui reprend le montant de 4 mois et je m'y prend comme ceci
// montant mois de Janvier 2007//

      $sql = "SELECT SUM(prix) as montant FROM prestation WHERE YEAR(date) = 2007 AND MONTH(date) = 1 ";
      $somme = mysql_query($sql) or die ('Erreur : '.mysql_error() );

      $detail_01_07 = mysql_fetch_assoc($somme);

                                    // montant mois de décémbre 2006//

      $sql = "SELECT SUM(prix) as montant FROM prestation WHERE YEAR(date) = 2006 AND MONTH(date) = 12 ";
      $somme = mysql_query($sql) or die ('Erreur : '.mysql_error() );

      $detail_12 = mysql_fetch_assoc($somme);

                                     // montant mois de Novembre 2006//

      $sql = "SELECT SUM(prix) as montant FROM prestation WHERE YEAR(date) = 2006 AND MONTH(date) = 11 ";
      $somme = mysql_query($sql) or die ('Erreur : '.mysql_error() );

      $detail_11 = mysql_fetch_assoc($somme);

                                    // montant mois de Octobre 2006//

      $sql = "SELECT SUM(prix) as montant FROM prestation WHERE YEAR(date) = 2006 AND MONTH(date) = 10 ";
      $somme = mysql_query($sql) or die ('Erreur : '.mysql_error() );

      $detail_10 = mysql_fetch_assoc($somme);

                                    // montant mois de Septembre 2006//

      $sql = "SELECT SUM(prix) as montant FROM prestation WHERE YEAR(date) = 2006 AND MONTH(date) = 9 ";
      $somme = mysql_query($sql) or die ('Erreur : '.mysql_error() );

      $detail_09 = mysql_fetch_assoc($somme);
Bon ça fonctionne nickel mais je me dit qu'il doit surement avoir un moyen de ne pas faire une requete pour chaque mois :?:

D'avance merci

Posté : 06 févr. 2007, 11:58
par albat
Je doute que ta requête soit valide,
compte tenu de l'utilisation erronée d'un champ date
alors qu'il s'agit d'un mot réservé...

Je vais donc considérer que tu disposes des champs mois et annee :
$sql = "SELECT SUM(prix) as montant, mois FROM prestation WHERE annee = 2006 GROUP BY mois"; 

Posté : 06 févr. 2007, 12:05
par dunbar
Je doute que ta requête soit valide,
compte tenu de l'utilisation erronée d'un champ date
alors qu'il s'agit d'un mot réservé...

Je vais donc considérer que tu disposes des champs mois et annee :
$sql = "SELECT SUM(prix) as montant, mois FROM prestation WHERE annee = 2006 GROUP BY mois"; 
Effectivement je récupére la valeur du mois a partir du champs date de ma TABLE qui reprendre bien le jour, le mois et l'année.
Mais je te certifie que ma requete fonctionne

Posté : 06 févr. 2007, 12:07
par albat
Ça marche peut-être, mais c'est mal !!! :evil: :non:

Posté : 06 févr. 2007, 12:09
par dunbar
Ça marche peut-être, mais c'est mal !!! :evil: :non:
:oops: Et comment je devrais m'y prendre :?:

Posté : 06 févr. 2007, 12:16
par albat
Ben ??? :shock:
En renommant ton champ, tout simplement !

dunbar_date, par exemple. ;)

Le tout est que tu n'utilises pas un mot réservé pour nommer tes champs.
date() étant une fonction PHP et date un type de données MySQL, c'est un mot réservé.

Posté : 06 févr. 2007, 12:20
par dunbar
Ben ??? :shock:
En renommant ton champ, tout simplement !
:oops:

Merci

Posté : 06 févr. 2007, 12:32
par albat
:oops:
C'est dur, le matin, hein ?... ;)

Posté : 06 févr. 2007, 12:34
par dunbar
:oops:
C'est dur, le matin, hein ?... ;)
Si il n'y avait que le matin :wink: