Aller au contenu

requetes sql trop lourdes...


michmuch51

Sujets conseillés

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:

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:

y 'a pas moyen d'alléger ca??

Lien vers le commentaire
Partager sur d’autres sites

Essaie ceci :

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)

Lien vers le commentaire
Partager sur d’autres sites

Merci portekoi, mais je ne suis pas sur de tout comprendre :P

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 :lol: ).

Lien vers le commentaire
Partager sur d’autres sites

Et bien, avec ce que j'ai marqué au dessus, tu as le total par mois :)

Donc si tu as plusieurs mois dans ta base, la requete devrait sortir ce qu'il faut :)

Edit : il faut biensur enlever la clause where :

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)

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

Personnellement je procèderais comme ceci :

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 ;)

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

Personnellement je procèderais comme ceci :

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 ;)

<{POST_SNAPBACK}>

Je te remercie TheRec, j'ai finalement opté pour ta solution :)

Lien vers le commentaire
Partager sur d’autres sites

Je n'aime pas me citer...mais :

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 ;)

<{POST_SNAPBACK}>

C'est ce que je voulais dire ;)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...