Comment faire une requete permettant de faire la somme [Résolu]

- - Dernière réponse :  fedely - 22 mars 2016 à 10:36
Bonjour, j'ai bien été aidé par vos aides mais je voudrais savoir si je peux a partir de ma requête sql faire la somme totale pendant une période donnée voila toujours la requête que j'effectuais pour calculer la somme par période : $sql="SELECT id,poste,montant,SUM(montant) as SOMME_MONTANT,date FROM newrech GROUP BY date";
Afficher la suite 

Votre réponse

3 réponses

Messages postés
23610
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
14 décembre 2018
0
Merci
Tanon...
pour la dernière fois....
LORSQUE TU POSTES DU CODE....UTILISE LES BALISES DE CODE !!!!!

http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Exemple :
SELECT id,poste,montant,SUM(montant) as SOMME_MONTANT,date FROM newrech GROUP BY date



je voudrais savoir si je peux a partir de ma requête sql faire la somme totale pendant une période donnée
Somme totale de quoi ?
Période de quel type ? Entre deux dates que tu lui passerais en paramètres ?

As tu essayé d'ajouter une clause WHERE à ta requête ?
Si oui..laquelle ? date => '2014-01-01' AND date <= '2014-01-29' par exemple ? ou sinon à l'aide d'un BETWEEN ?
Ton champ date est un DATETIME ou TIMESTAMP ?

ok je vais essayer ce code et je verrais le resultat qu'il me donnera . MERCI
malheureusement lorsque j'utilise la syntaxe que vous me donner il ne marque rien dans les champs je ne sais pas mais il me met par exemple date =0 montant =0 poste =0 . mais j'ai essayer cette syntaxe aussi mais c'est toujours le meme soucis :
$sql=select id,poste,montant  SUM(montant) as TOTAL_MONTANT FROM newrech WHERE date BETWEEN '$date1' AND '$date2';
jordane45
Messages postés
23610
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
14 décembre 2018
-
Dans ta table.. le champ qui contient les dates est de quel type ? (datetime ou timestamp) ?
Colles nous quelques lignes de ta bdd histoire que l'on voit sous quelle forme elles sont...
mon champ date est de type: DATE
1 id int(12) Non Aucune AUTO_INCREMENT Modifier Modifier Supprimer Supprimer Affiche les valeurs distinctes Affiche les valeurs distinctes Primaire Primaire Unique Unique Index Index Montrer d'autres actions plus
2 poste int(10) Non Aucune Modifier Modifier Supprimer Supprimer Affiche les valeurs distinctes Affiche les valeurs distinctes Primaire Primaire Unique Unique Index Index Montrer d'autres actions plus
3 montant int(14) Non Aucune Modifier Modifier Supprimer Supprimer Affiche les valeurs distinctes Affiche les valeurs distinctes Primaire Primaire Unique Unique Index Index Montrer d'autres actions plus
4 date date Non Aucune Modifier Modifier Supprimer Supprimer Affiche les valeurs distinctes Affiche les valeurs distinctes Primaire Primaire Unique Unique Index Index Montrer d'autres actions plus
5 commentaire varchar(255) latin1_swedish_ci Non Aucune Modifier Modifier Supprimer Supprimer Affiche les valeurs distinctes Affiche les valeurs distinctes Primaire Primaire Unique Unique Index Index Montrer d'autres actions plus
6 etat varchar(24) latin1_swedish_ci Non Aucune Modifier Modifier Supprimer Supprimer Affiche les valeurs distinctes Affiche les valeurs distinctes Primaire Primaire Unique Unique Index Index Montrer d'autres actions plus
Commenter la réponse de jordane45
Messages postés
23610
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
14 décembre 2018
0
Merci
Déjà..il te manque une virgule avant le SUM dans la requête que tu nous montres.

Ensuite... Est-ce que tu veux la somme de TOUS les montants de ta table (entre deux dates) ou bien la somme des montants de chaque poste (entre deux dates) ?


Cas Numéro 1 :
$sql="select  SUM(montant) as TOTAL_MONTANT 
FROM newrech 
WHERE date BETWEEN '$date1' AND '$date2' ";



Cas Numéro 2 :
$sql="select id,poste,montant,  SUM(montant) as TOTAL_MONTANT 
FROM newrech 
WHERE date BETWEEN '$date1' AND '$date2' 
 GROUP BY poste";




Si tu n'obtiens toujours pas ce que tu cherches... merci de mettre un ECHO de ton $sql PUIS de nous montrer ce que ça donne.

merci jordane45 j'ai bien exécuté la requete et elle marche a merveille mais je peux savoir un truc ???
es ce qu'il est possible de faire uniquement la somme des montants totale
jordane45
Messages postés
23610
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
14 décembre 2018
-
la somme des montants total... c'est à dire ?
Tu as testé les deux cas proposés ??

ou alors..peux tu nous dire exactement ce que tu souhaites obtenir... par exemple : la Somme des montants / Par Date / Entre deux dates
bon je t'explique au fait j'ai utilisé le cas numéro 2 comme tu me l'avais proposé et je voudrais encore faire une autre requête qui me permettra d'effectuer la somme totale uniquement des montants . j'espère que tu me comprends
si tu veux voila lorsque j'ai le montant totale au cours d'une date je souhaite qu'il me donne la somme totale des montants sans la date mais qu'il puisses me donner uniquement les totaux .
Commenter la réponse de jordane45
Messages postés
23610
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
14 décembre 2018
0
Merci
Cas Numéro 2.
Requête ne contenant QUE le montant TOTAL.

=)> Tu choisis dans ton "select" ce que tu veux comme champs...
Si tu ne veux que la somme des montant.. tu ne marque que ça...
$sql="SELECT  SUM(montant) as TOTAL_MONTANT 
FROM newrech 
WHERE date BETWEEN '$date1' AND '$date2' 
 GROUP BY poste";

MERCI , pour ces différents liens et je voudrais te dire que j'ai pu trouver une solution a mon problème .
jordane45
Messages postés
23610
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
14 décembre 2018
-
Je t'en prie.

Par contre... quelle est cette solution ?
(merci de nous l'indiquer ici... afin que si d'autres personnes rencontrent le même souci que toi..elles puissent trouver une réponse facilement)
non au fait ce code représente le code permettant de faire l'aperçu de ma page . mais ce code lorsque je veux l'intégrer a un autre code il ne me met que les images retour et l'imprimante mais il n'affiche pas le contenu de mon aperçu . hors je l'ai bien intergrer mais je ne sais pas ce qu'il ne vas pas .
jordane45
Messages postés
23610
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
14 décembre 2018
-
Je n'ai rien compris....
De quoi me parles tu ?
Bonjour j'ai un petit soucis avec ma requete pour faire la somme entre 2 dates. lorsque je mets ceci ; <?php
$date1=$_POST['date1'];
$date2=$_POST['date2'];
$sql="select SUM(mont) as TOTAL_MONTANT FROM consultation WHERE date BETWEEN '$date1' AND '$date2'";
$sqlresult=mysql_query($sql);
while ($row=mysql_fetch_array($sqlresult))
{
echo '$sql';
}
?>

et que j'affiche voici ce qu'on me dit:
( ! ) Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\CHR\script\verif_date.php on line 9
j'ai besoin d'aide svp
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.