SQL + condition IF ?

Résolu
Tipo -  
 Taka21 -
Bonjour,

Je me pose une question.

Est-il possible de faire un test de condition de type IF... ELSE... dans une seule et même requête SQL ?

Je vais rechercher des valeurs à des dates précises et en fait un rapport pour obtenir certains taux.
Par contre, je ne dois pas être en mesure de faire ce genre de requêtes si une des valeurs équivaut à ZERO.
Division par zéro... ne doit pas être possible!

Je dois donc procéder à un test de la valeur avant de faire le rapport directement dans la requête SQL.

Est-ce que cela est possible ? ou dois-je absolument passer par deux requêtes différentes et m'occuper du rapport et de sa condition (aucune valeur = ZERO) à un niveau supérieur à SQL ?

Merci et bravo à celui qui pourra m'aider.


Tipo
A voir également:

4 réponses

Tipo
 
Non ce n'est pas cela mon problème. Je présente un exemple :

J'ai une table BONBONS avec un ID, NOM, DATE.

L'ID est unique, le NOM défini un type de bonbon par exemple et la date, la date à laquelle j'ai ajouté le bonbon dans ma boite à bonbons.

Ce que je veux c'est savoir combien de bonbons "à la menthe" ont été mis dans ma boite en une semaine, il y a deux semaine et en une semaine, il y a une semaine. Donc 2 quantités en fait. Et je veux voir si il y a eu une augumentation, diminution ou aucun des deux d'ajout de bonbons dans cette boite.

Mais, je ne peux pas faire ce rapport lorsque l'ajout du bonbon = ZERO sinon ça revient à faire une division avec un ZERO et c'est faut.

(Je sais, dans mon exemple on les mets dans la boite, mais c'est pour le bien des dents)
7
moi
 
J'ai pas bien compris ton problème mais il me semble que faire
SELECT * FROM table WHERE date is not 0; devrait convenir

ca me parait trop simple pour que ce soit ce que tu veux.
1
Tipo
 
Je dois donc d'abord faire un contrôle pour savoir si la quantité d'ajout de bonbon = ZERO.
En cas de réussite, je fais le rapport, sinon je fais autre chose.

Un IF, ELSE en quelque sorte dans une requête SQL.
0
moi
 
mais la tu fais une soustraction. Je vois pas de division ?
0
moi > moi
 
ok c'est bon je vois la division...
0
Droopy_ Messages postés 248 Date d'inscription   Statut Membre Dernière intervention   25
 
Tu peux faire des IF en SQL :
https://dev.mysql.com/doc/refman/8.0/en/control-flow-functions.html

Honnêtement, je pencherait plus pour le faire dans un langage de plus haut niveau que SQL.
Mais ça doit être possible.
0
Super
 
Tipo 26 nov 2008 à 23:52 
Comme bien souvent, je trouve réponse à mes questions tout seul [...]


Et tu ne remets pas en question l'utilité de tes questions ?
-4
StranGy
 
Le c**, à comparer, est manifestement celui qui n'ose pas poser ses questions... de plus, Tipo26 partage ses réponses visiblement...
Dans ce contexte, Super, et sur un forum voué à l'entraide, c'est à priori peut- être l'utilité de tes commentaires déplacés (issus : soit d'une aigreur incontestable, soit d'un complexe de supériorité aigu, peu importe...) qu'il serait bon de remettre en question ? Non ? ;)
Bien entendu, je n'insisterai pas sur le fait, qu'ajouter à cela, tu réponds à un sujet de 2008 : Il était réellement temps que tu nous fasses partager ta science infuse!! lol
0
Nina
 
+1
Surtout que grâce à son sujet, sa réponse m'a bien aidée, même 3 ans plus tard !

Bonne journée
0
Bibou
 
+1
Merci à Tipo pour sa question et sa réponse ! :)
0
choco7
 
oui vraiment merci ;)
0
Anne Onyme
 
et voila, 2013 . Je débute en sql. Je me pose la même question. Et je trouve une réponse.
Alors autant les gens qui se contentent d'un c'est bon j'ai trouvé sont énervants.

Autant ceux qui partagent leurs réponses font avancer les choses.
Merci d'avoir eut la gentillesse d'etre du bon coté.
0