Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/08/2011, 17h21   #1
Invité de passage
 
Homme
Inscription : août 2011
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 3
Points : 0
Points : 0
Par défaut Problème avec la fonction somme

Bonjour à tous,

je suis un utilisateur récent et je suis coincé dans mon boulot. J'execute la requete:

Code :
SELECT Event.[Payés], IIf(sum([Payés])>0,[Payés],[Payés]*(-1)) AS Expr1 FROM Event;
Ce que je cherche à faire donc est de signer + si la somme du champs 'payés' est positive, est - sinon.

et il me dit : "Vous avez essayé d'executer un requete ne comprenant pas l'expression spécifiée 'Payés' comme une partie de la fonction d'agrégat."

Je sais pas si j'ai le droit de me servir de la fonction somme comme cela.

merci pour toute aide de votre part.
DELL317110 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 08h39   #2
Membre actif
 
Homme Quentin D.
Étudiant
Inscription : avril 2011
Messages : 175
Détails du profil
Informations personnelles :
Nom : Homme Quentin D.
Âge : 25
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : avril 2011
Messages : 175
Points : 165
Points : 165
BOnjour,

Tu ne peux effectivement pas utiliser la fonction somme comme cela. Il te faut regrouper un champs de ta table sur lequel tu veux faire la somme. Et le problème ici est que tu veux mettre ton champs payés avec la somme de ce mm champs...Cela ne peux pas fonctionner.

Détaille ta table et précise bien ce que tu veux faire, on pourra alors t'aider comme il faut.
__________________
Pourquoi faire aujourd'hui ce que l'on peut remettre à demain ?
Nitromard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 09h44   #3
Invité de passage
 
Homme
Inscription : août 2011
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 3
Points : 0
Points : 0
En fait pour simplifier, ma table est constituée d'un champs [ID], qui constitue ma clé primaire, et du champs [Payés], qui est un champs numérique. Pour certains enregistrements, les payés sont >0, mais pour d'autres ils sont <0.

Ce que je dois faire, est de créer une nouvelle table, telle que la somme de toute la colonnes payés soit positive, d'où le code:

Code :
IIf(sum([Payés])>0,[Payés],[Payés]*(-1))
qui veut dire pour moi : si la somme est déja positive, alors ne rien faire, sinon multiplir chaque enregistrement par -1.

merci
DELL317110 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 10h36   #4
Membre actif
 
Homme Quentin D.
Étudiant
Inscription : avril 2011
Messages : 175
Détails du profil
Informations personnelles :
Nom : Homme Quentin D.
Âge : 25
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : avril 2011
Messages : 175
Points : 165
Points : 165
Alors le truc c'est que si tu utilises IIF, tu ne peux pas utiliser la fonction sum.
Je pense qu'il faudrait que tu sépares le calcul de ta somme et ton IIf...
Je cherche actuellement une astuce...
__________________
Pourquoi faire aujourd'hui ce que l'on peut remettre à demain ?
Nitromard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 11h03   #5
Membre actif
 
Homme Quentin D.
Étudiant
Inscription : avril 2011
Messages : 175
Détails du profil
Informations personnelles :
Nom : Homme Quentin D.
Âge : 25
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : avril 2011
Messages : 175
Points : 165
Points : 165
Re,

Alors j'ai trouvé une solution plutôt barbare mais qui fonctionne bien, mais le truc c'est que je dois mettre la somme ds une colonne pour pouvoir comparer chaque ligne avec la somme :

Code :
1
2
3
SELECT Event.[Payés], Sum(Event_1.[Payés]) AS Somme, IIf(Somme>0,Event.[Payés], Event.[Payés]*(-1)) AS Expr1
FROM Event, Event AS Event_1
GROUP BY Event.[ID], Event.[Payés];
Voilà j'espère que ça ira ^^
__________________
Pourquoi faire aujourd'hui ce que l'on peut remettre à demain ?
Nitromard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 11h08   #6
Invité de passage
 
Homme
Inscription : août 2011
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 3
Points : 0
Points : 0
pas mal comme astuce ! c'est une solution à mon problème

merci beaucoup
DELL317110 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 11h12   #7
Membre actif
 
Homme Quentin D.
Étudiant
Inscription : avril 2011
Messages : 175
Détails du profil
Informations personnelles :
Nom : Homme Quentin D.
Âge : 25
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : avril 2011
Messages : 175
Points : 165
Points : 165
N'oublie pas de mettre la discussion en résolue si tu penses que la solution te conviens ^^. (en bas de page)
Et bonne continuation.
__________________
Pourquoi faire aujourd'hui ce que l'on peut remettre à demain ?
Nitromard est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h42.


 
 
 
 
Partenaires

Hébergement Web