IIF

Résolu/Fermé
benol3 Messages postés 569 Date d'inscription lundi 29 juillet 2013 Statut Membre Dernière intervention 7 mai 2015 - 21 mai 2014 à 17:01
benol3 Messages postés 569 Date d'inscription lundi 29 juillet 2013 Statut Membre Dernière intervention 7 mai 2015 - 22 mai 2014 à 13:36
Bonjour,

Je suis entrain de créer une requete SQL sous ACCESS et je rencontre un problème, je n'ai pas trouver de solution sur internet.

Je voulais savoir si avec la fonction iif ou un autre moyen, on peut paramétrer l'affichage d'un champs dans une requête SQL du genre :

iif(champ1="toto";champ2;champ3) dans ma condition SELECT

C'est éqyuivalent à :
Si le champ1 est égal à "toto" alors affiche dans ma requete le champ2 sinon affiche dans ma requete le champ3.

Merci d'avance pour votre aide :)

4 réponses

Bonsoir,
A faire en visuel et convertir en SQL avec l'assistant, je ne suis pas un kador avec SQL.
Ecrire comme valeur d'un champX
ChampàAfficher:Iif(Champ1="Toto";Champ2;Champ3)
Après tout il ne s'agit que d'un champ calculé comme n'importe quel autre.
ça devrait passer.
Bonne suite.
0
benol3 Messages postés 569 Date d'inscription lundi 29 juillet 2013 Statut Membre Dernière intervention 7 mai 2015 87
22 mai 2014 à 09:26
Merci de ta réponse mais malheureusement, cela ne marche pas :(
0
Bonjour,
Je viens de re-tester l'écriture ci-dessous, et elle marche, il suffit d'adapter les noms de table et de champs.
SELECT TableA.Index, TableA.DateEntree, TableA.DateSortie, IIf([Index]>10,[DateEntree],[DateSortie]) AS Expr1
FROM TableA;

Avant le champ calculé, il est indispensable de rendre visibles les champs qui figurent dans l'opération. Sinon ça ne passe pas.
Bonne suite
0
Re...
A moi de te remercier; je viens de faire une découverte; on peut écrire l'expression sous la forme:
SELECT IIf([TableA].[Index]>10,[TableA].[DateEntree],[TableA].[DateSortie]) AS Expr1 FROM TableA;
Elle sort parfaitement
Bonne suite
0
benol3 Messages postés 569 Date d'inscription lundi 29 juillet 2013 Statut Membre Dernière intervention 7 mai 2015 87
Modifié par benol3 le 22/05/2014 à 13:36
Content que cela t'es appris des choses... Pour ma requête, cela ne marche pas. J'ai trouvé une solution contournant le problème en attendant. Je me pencherais plus sur l'utilisation de ta solution quand j'en aurais le temps

En tout cas, merci beaucoup de ton aide et du temps que m'a accordé :)
@+
0