Calcul des valeurs d'un résultat ?

Résolu
umutys Messages postés 7 Date d'inscription lundi 9 juin 2003 Statut Membre Dernière intervention 1 juin 2010 - 6 nov. 2008 à 15:33
umutys Messages postés 7 Date d'inscription lundi 9 juin 2003 Statut Membre Dernière intervention 1 juin 2010 - 14 nov. 2008 à 15:02
Bonjour,
je voulais savoir s'il était possible de calculer le résultat d'un champ ?

Exemple :
Un utilisateur met dans son pannier 2 tomates, 3 salades et 4 concombres
Un autre met 1 tomate, 10 salades, 10 concombres et 35 radis
ChampUser         ChampQtt            ChampTitre
User1                  2                           Tomates
User1                  3                           Salades
User1                  4                           Concombres
User2                  1                           Tomate
User2                  10                         Salades
User2                  10                         Concombres
User2                  35                         Radis

Comment faire pour calculer le nombre de quantité du ChampQtt pour chaque Utilisateur ?
Je voudrais une formule s'il éxiste pour me donner le résultat pour le suivant :
User1 à (2+3+4 =) 9 articles et User2 à (1+10+10+35 =) 56 articles

Il éxiste une formule mais il s'arrete de calculer apres le 2ème chiffre et donne pas le bon résultat :

<cfscript>
   function Sum(a) {
   var sum = a + a;
   return sum;
   }
   </cfscript>

<cfoutput query="getallprodbyuser">#SUM(getallprodbyuser.ChampQtt)#</cfoutput>

Merci à tous d'avance,

Umut

4 réponses

nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
12 nov. 2008 à 08:39
Re,

"mais malheureusement ça ne fonctionne pas"
Ben si ça doit fonctionner si tu fais une requète sur ta requète comme indiqué.
Tu dois supprimer la  fonction Sum que tu as dans ton code pour que ça fonctionne.
Une autre solution :
ta requète
...
<cfif getallprodbyuser.RecordCount GT 0>
<cfset total = 0/>
<cfset tpUser = getallprodbyuser.ChampUser/>
<cfoutput query= "getallprodbyuser"/>
#ChampUser#         #ChampQtt#            #ChampTitre#
<cfif tpUser eq ChampUser>
   <cfset total = total + ChampQtt />
<cfelse>
   Total : #total#
   <cfset total = 0/>
   <cfset tpUser = ChampUser/>
</cfif>
</cfoutput>
<cfoutput>   Total : #total#</cfoutput>
</cfif>

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
Mon Blog
3
umutys Messages postés 7 Date d'inscription lundi 9 juin 2003 Statut Membre Dernière intervention 1 juin 2010
14 nov. 2008 à 15:02
Un grand merci nickadele,
ça m'affiché une page d'erreur, mais cela était du au slash '/' en trop que t'avais mis

<cfset tpUser = getallprodbyuser.ChampUser/>
<cfoutput query= "getallprodbyuser">
#ChampUser#         #ChampQtt#            #ChampTitre#

Voilà le code fonctionne parfaitement comme ça ...

En tout cas merci beaucoup, j'ai pu énormément avancé grace à toi !!!

Umut
3
nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
10 nov. 2008 à 10:04
Bonjour,

tu peux faire une query sur le résultat de ta query :

<cfquery dbtype="query" name="monTotal">
Select getallprodbyuser.ChampUser, Sum(getallprodbyuser.ChampQtt) As Total
From getallprodbyuser
Group By getallprodbyuser.ChampUser
</cfquery>

<cfoutput query="monTotal">#ChampUser#  #Total#</cfoutput>

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
Mon Blog
0
umutys Messages postés 7 Date d'inscription lundi 9 juin 2003 Statut Membre Dernière intervention 1 juin 2010
12 nov. 2008 à 00:16
Salut nickadele,

avant tous merci pour la réponse, mais malheureusement ça ne fonctionne pas (ça n'additionne pas tous les résultat du champ, uniquement les deux premiers)

comme dans l'exemple ci-dessus
pour User1 il donne : 2+3 et 4
résultat du output : 54
et je voudrais 2+3+4 = 9

pour user2 il donne : 1+10 et 10 et 35
résultat du output : 111035
et je devrais avoir : 1+10+10+35

il faudrais que l'addition se fasse autant de fois qu'il y'as de recordcount pour le user

Mes champs sont dans une base access et au début j'avais mis le champ de quantité en 'Memo', maintenant en 'Number'  (Long Integer)

Merci d'avance à tous

Umut
0
Rejoignez-nous