Champ calculé: si négatif mettre 0

totoalareunion Messages postés 8 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 17 février 2010 - 12 oct. 2007 à 09:07
totoalareunion Messages postés 8 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 17 février 2010 - 15 oct. 2007 à 07:27
Bonjour,

Je cherche une fonction utilisable avec les requetes access (pas en vba) qui garde uniquement les valeurs positive ou 0 d'un champ calculé. En fait si la différence de mes champs  est  négative il me donne 0... Ca parait simple mais  je perds patience je ne trouve rien la dessus...

Merci d'avance

Thomas

6 réponses

GEDDi Messages postés 206 Date d'inscription lundi 22 novembre 1999 Statut Membre Dernière intervention 3 juillet 2008
12 oct. 2007 à 14:40
Ben simplement avec la fonction IIF à mettre sur

Ta requete sera alors de ce style là :
Select toto, IIF(  chp1 - chp2 > 0, mavaleur, 0 ) As titi, tutu FROM MATABLE

Gérôme GUILLEMIN
Auteur du langage FBSL
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
13 oct. 2007 à 11:37
salut,
dans l'idée çà serait select monchamps1, monchamps2 from matable where (monchamps2-monchamps1>0)
(à supposer que tu veuilles garder les valeurs)
mais pas de calcul de ce type en SQL.....
à toi de faire ta requête select monchamps1, monchamps2 from matable
et de ne retourner ensuite les résultats que selon le calcul du rs en boucle while not rs.eof
lTmpRes=rs.field("monchamps2")-rs.field("monchamps1")
if lTmpRes>=0 then ACTION

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
GEDDi Messages postés 206 Date d'inscription lundi 22 novembre 1999 Statut Membre Dernière intervention 3 juillet 2008
13 oct. 2007 à 14:00
Désolé, mais ma methode fonctionne pour ACCESS, pour Oracle il faut remplacer IIF par DECODE tout simplement et ça fonctionnera.
Dans l'idee, il vaut mieux demander au système de données de faire son calcul en amont plutot qu'à faire des bidouilles apres coup!

Gérôme GUILLEMIN
Auteur du langage FBSL
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
13 oct. 2007 à 22:45
que ta syntaxe fonctionne ou pas, même rien que sur le principe la demande étant de ne retourner que les champs dont la somme est >=0 je ne pense pas que ta "méthode" fasse cette tâche, si?...
0

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

Posez votre question
GEDDi Messages postés 206 Date d'inscription lundi 22 novembre 1999 Statut Membre Dernière intervention 3 juillet 2008
14 oct. 2007 à 16:33
En effet :)
Donc dans ce cas, il suffit de rajouter une clause dans WHERE
Select ... from TABLE WHERE monchamps2 - monchamps1 > 0

Gérôme GUILLEMIN
Auteur du langage FBSL
0
totoalareunion Messages postés 8 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 17 février 2010
15 oct. 2007 à 07:27
Bjr,

Merci pour vos réponses,

Le IIF convient tres bien:
Select toto, IIF( mavaleur > 0, mavaleur, 0 ) As titi, tutu FROM MATABLE

Merci @+
0
Rejoignez-nous