Comment faire une fonction qui permet de calcule une coût cumulé

niyericsson Messages postés 30 Date d'inscription lundi 9 avril 2012 Statut Membre Dernière intervention 17 juillet 2014 - 31 mai 2012 à 10:40
 ChuluNoel - 19 sept. 2013 à 12:50
bonjour a toute a communauté..

Je voudrais recourir a votre aide..
En fait mon problème est libelé comme suit:

j'ai une table des mouvements du charroi avec les champs
plaque,marqueVehicule,modeleVehicule,cout Entretien..
alors comment puis je calculer le cumul du cout Entretien.

pour de plus amples explications je veux que ma solution soit de la forme:

coutEntretien CoutCumulé
1000 1000
2000 3000
3000 6000

et ca je voudrais savoir comment le faire dans une requete sql

merci pour votre aide

7 réponses

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
31 mai 2012 à 10:57
Salut,

ne suffit-il pas de remplir coutCumule avec (couEntretien + SUM(SELECT coutEntretien)) ?
0
Salut. Je suis d'avis que vous avez déjà la réponse certainement, mais je voulais juste dire que à votre place je n'aurai pas besoin de procéder de la sorte d'autant plus que le Cumul je n'ai pas besoin d'une fonction pour le traitement du Cumul. La colonne de CoutEntretien me suffit et je ne ferai apparaitre le Cumul que sur mon Etat en Sortie. Crystal Report me permet d'écrire une formule qui me permettra de garnir le cumul.
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
31 mai 2012 à 10:58
oups :
SELECT SUM(coutEntretien)
0
niyericsson Messages postés 30 Date d'inscription lundi 9 avril 2012 Statut Membre Dernière intervention 17 juillet 2014 1
31 mai 2012 à 18:31
merci jopop,

avec ta solution ca me donne donne une erreur de syntaxe

j'ai meme essayé ca

(select sum(m.cout)from maTable m where mv.maTable_Id <= maTable.maTable_I) as 'coût cumulé '


mais la ce me donne des valeurs incohérentes.

merci tout en esperant que je vais trouver la solution
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
1 juin 2012 à 08:04
Re,

attention avec tes alias. Pas sûr qu'il apprécie que tu fasses une clause avec un alias (d'ailleurs une fois c'est m une fois c'est mv) et le nom d'origine de la table. Et surtout pas dit qu'il aime les alias de champ avec accents et espace. Sinon le reste de la requête est correct et ne devrait pas engendrer d'erreur.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
niyericsson Messages postés 30 Date d'inscription lundi 9 avril 2012 Statut Membre Dernière intervention 17 juillet 2014 1
1 juin 2012 à 14:41
salut,

merci jopop effectivement l'erreur se trouvait au niveau de
ces allias qui étaient differents et maintenant ca marche..

je voudrais appliquer la meme solution
a une table virtuelle contenant des champs tirés de plusieurs tables..
la solution actuelle ne colle pas car je ne vois pas comment formuler
l expression d 'evaluation vu que cette table n a pas d'identifiant
sur lequel se baser pour evaluer..

expl: m.maTableId <= maTable.maTableId


merci d avance pour votre contribution..
0
niyericsson Messages postés 30 Date d'inscription lundi 9 avril 2012 Statut Membre Dernière intervention 17 juillet 2014 1
4 juin 2012 à 10:58
salut,

J'ai enfin trouvé que la meilleure facon de le faire
est d'utiliser une fonction.
En fait il suffit d'utiliser un curseur pour parcourir
le tableau avec la variable contenant le cout cumulé initialisé a 0

@coutCumule = 0

@coutCumule += @cout

a plus
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
4 juin 2012 à 12:32
Re,

marque ton dernier message comme "réponse acceptée" ;)
0
Rejoignez-nous