Aller au contenu

requetes sql trop lourdes...


Sujets conseillés

Posté

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??

Posté

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)

Posté

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

Posté

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)

Posté

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é
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 :)

Posté

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

Posté

Oui pas de pb ;)

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 ^_^

Veuillez vous connecter pour commenter

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



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