IIF

Résolu
benol3 Messages postés 570 Date d'inscription   Statut Membre Dernière intervention   -  
benol3 Messages postés 570 Date d'inscription   Statut Membre Dernière intervention   -
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 :)
A voir également:

4 réponses

Tessel75
 
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 570 Date d'inscription   Statut Membre Dernière intervention   87
 
Merci de ta réponse mais malheureusement, cela ne marche pas :(
0
Tessel75
 
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
Tessel75
 
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 570 Date d'inscription   Statut Membre Dernière intervention   87
 
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