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