Version complète: sur le forum Webmaster Hub : requetes sql trop lourdes...
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > SQL
michmuch51
Bonsoir les hubiens,

je suis en train de mettre en place des stats par rapport à une bdd, pour se faire je fais la requete suivante:
CODE
SELECT SUM(total_commande) AS total FROM ma_table_des_commandes where o_timestamp LIKE '2006-01%'


ensuite je recupere le tout avec mysql_fetch_array

et ca me donne donc le total_commande pour le mois de janvier...
le seul pb c'est que je fais un graphique et du coup je dois rentrer les 12 mois de l'année... Actuellement je fais donc 12 requetes à la base: 1 par mois pour une an huh.gif

y 'a pas moyen d'alléger ca??
Portekoi
Essaie ceci :

SQL
SELECT SUM(total_commande) AS total, substring(o_timestamp, 1, 7) as Date_ FROM ma_table_des_commandes where o_timestamp LIKE '2006-01%' Group by substring(o_timestamp, 1, 7)
michmuch51
Merci portekoi, mais je ne suis pas sur de tout comprendre tongue.gif

en fait je cherche une requete sql me permettant finalement de sélectionner l'ensemble de mes total_commande, et avec du php par la suite decouper ce montant en fonction des dates pour faire finalement une seule requete pour mes 12 mois.

Avec ce que tu as marqué ci-dessus je reste toujours sur janvier 2006 (ou alors c'est justement là qu'un truc m'échappe laugh.gif ).
Portekoi
Et bien, avec ce que j'ai marqué au dessus, tu as le total par mois smile.gif

Donc si tu as plusieurs mois dans ta base, la requete devrait sortir ce qu'il faut smile.gif

Edit : il faut biensur enlever la clause where :

SQL
SELECT SUM(total_commande) AS total, substring(o_timestamp, 1, 7) as Date_ FROM ma_table_des_commandes Group by substring(o_timestamp, 1, 7)
michmuch51
Vendu chef wink.gif
je te remercie, visiblement ca roule avec une tite boucle...
TheRec
Bonsoir,

Personnellement je procèderais comme ceci :
SQL
SELECT SUM(total_commande) AS total FROM ma_table_des_commandes WHERE YEAR(o_timestamp) = 2006 GROUP BY MONTH(o_timestamp)

Si tu veux grouper par mois sans se restreindre à une année en particulier il suffit de ne pas mettre la clause WHERE ... mais cela à peu de sens de faire la somme de mêmes mois à une ou plusieurs années d'écart wink.gif
michmuch51
CITATION(TheRec @ mardi 02 mai 2006, 23h39)
Bonsoir,

Personnellement je procèderais comme ceci :
SQL
SELECT SUM(total_commande) AS total FROM ma_table_des_commandes WHERE YEAR(o_timestamp) = 2006 GROUP BY MONTH(o_timestamp)

Si tu veux grouper par mois sans se restreindre à une année en particulier il suffit de ne pas mettre la clause WHERE ... mais cela à peu de sens de faire la somme de mêmes mois à une ou plusieurs années d'écart wink.gif
*


Je te remercie TheRec, j'ai finalement opté pour ta solution smile.gif
Portekoi
Attention : Sur 2 années différentes, cela va additionner les 2 mois de Janvier par exemple smile.gif
TheRec
Je n'aime pas me citer...mais :
CITATION(TheRec @ mardi 02 mai 2006, 23h39)
Si tu veux grouper par mois sans se restreindre à une année en particulier il suffit de ne pas mettre la clause WHERE... mais cela à peu de sens de faire la somme de mêmes mois à une ou plusieurs années d'écart wink.gif
*

C'est ce que je voulais dire wink.gif
michmuch51
Oui pas de pb wink.gif

de toute façon si on classe ca par année ca fait 1 requete par année donc c'est exactement ce que je cherchais...

Merci encore les hubiens ^_^
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.