Rechercher : dans
Par :

Requete sql avec un if dedans

Dernière réponse le 15 sep 2008 à 19:47:17 raph, le 1 jun 2006 à 14:21:42 
 Signaler ce message aux modérateurs

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

1

Kobaya, le 1 jun 2006 à 18:00:45

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.

A+,
Kobaya.

Répondre à Kobaya

2

Pool Orion, le 2 jun 2006 à 08:30:23
  • +2

Salut,

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

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

Pool Orion

Répondre à Pool Orion

3

Sphax, le 7 jan 2008 à 17:43:33

Pas de CASE dans Access malheureusement...

Répondre à Sphax

4

fabien iut paris 13, le 21 jan 2008 à 14:39:24

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

Répondre à fabien iut paris 13

5

ssam, le 18 avr 2008 à 12:52:15

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.

Répondre à ssam

6

ok, le 23 jui 2008 à 10:10:27

A voir le syntaxe

Répondre à ok

7

Lag, le 15 sep 2008 à 19:42:54

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...

Répondre à Lag

8

 Lag, le 15 sep 2008 à 19:47:17
  • +3

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

Répondre à Lag