IIF

Résolu
benol3 Messages postés 718 Statut Membre -  
benol3 Messages postés 718 Statut Membre -
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

  1. 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
  2. benol3 Messages postés 718 Statut Membre 87
     
    Merci de ta réponse mais malheureusement, cela ne marche pas :(
    0
  3. 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
  4. 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
    1. benol3 Messages postés 718 Statut Membre 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