Requete sql avec un if dedans

[Fermé]
Signaler
-
Messages postés
4
Date d'inscription
mercredi 11 janvier 2012
Statut
Membre
Dernière intervention
27 octobre 2014
-
bonjour,


Je Cherche à faire une requete SQL sur une table access avec des conditions IF à l'intérieur ! Est-ce possible et si oui comment ?

Merci d'avance

9 réponses

Exemple concret avec ce que tu demandes sur un champ appelé test :
test: VraiFaux ( [date_return] > [starting_date] ; [date_return] ; [starting_date] )

en SQL traduit par ACCESS :
IIf([date_return]>[starting_date],[date_return],[starting_date]) AS test
12
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42854 internautes nous ont dit merci ce mois-ci

Messages postés
282
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
10 janvier 2008
213
salut Raph,

tu dois utiliser la clause WHERE pour restreindre ta requête, ou utiliser des requêtes imbriquées (ex. : SELECT * FROM tFactures WHERE idCli IN (SELECT idCli FROM tClients) ).

L'utilisation de If/Endif n'est pas possible en SQL.

Messages postés
124
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
15 juin 2007
54
Salut,

Tu peux tout de même utiliser l'instruction 'case' du genre :

SELECT CASE(zone) WHEN valeur1 THEN ...
ELSE ...
END,
zone2,
...

Pas de CASE dans Access malheureusement...

Bonjour,
nous avons un problème sur acess, nous avons besoins de votre aide.
lorsque l'on fait une requete dans une table avec kom conditions la case précédente le logiciel ne va pa chercher automatiquement l'information dans la table nécessaire


merci d'avance
a voir le syntaxe
Je ne sais pas si c'est toujours d'actualité mais c'est tout à fait possible.
En SQL ACCESS cela donne : IIf(Year([date_return])=Year(Now()),1,0) AS return_n
par exemple mon champ return_n affiche 1 si l'année de la date du champ [date_return] est égale à l'année en cours.

Dans le gestionnaire de requete il faut utiliser la fonction vraifaux :
return_n : VraiFaux(Année([date_return])=Année(Maintenant());1;0)


Par contre, j'ai personellement un pb quand j'essaye d'exporter cette partie de requete sur Query (Excell) ou via PHP/MySQL car cela ne fonctionne pas...
J'ai une table ou il existe deux champ. Je veux crée un troisième champs qui contient une condition que si le premier est superieur au deuxième il renvoi comme réponse le champs un si non le champs deux.
Messages postés
4
Date d'inscription
mercredi 11 janvier 2012
Statut
Membre
Dernière intervention
27 octobre 2014
1
C'est très simple :
SELECT Champs1, Champs2, IIf(Champ1>Champ2,Champ1,Champ2) AS Champs3 FROM Nom_Table;