[SQL] Problème requête

Résolu/Fermé
BeFLuo Messages postés 10 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 21 mai 2008 - 7 mai 2008 à 11:17
BeFLuo Messages postés 10 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 21 mai 2008 - 7 mai 2008 à 11:36
Bonjour,

je suis en stage et je dois mettre en place un système de gestion de mailing list. Il peut y avoir une recherche selon la zone diffusion (exemple : 72 - 75 - 70), le département seul ou un (ou plusieurs) code postal précis, voire même les trois en même temps. Pour compliquer la chose, on peut inclure ou exclure ces trois champs. Exemple, si on veut envoyer des mails toutes les personnes inscrites hors zone de diffusion. J'ajoute à ma requête de base d'autres bout de requête qui correspondent à ma recherche, et c'est ici que mon problème intervient :

Lorsque que je fais une recherche en fonction de la zone de diffusion seule, en l'excluant cela fonctionne. Voici la requête :
SELECT * FROM table WHERE 1 AND FLOOR(dep/1000) NOT IN ('70','75','72')
J'ai bien un résultat

Cependant, si je veux tout de même le département 70 je l'ajoute à la requête :
SELECT * FROM table WHERE 1 AND ( FLOOR(dep/1000)='70') AND FLOOR(dep/1000) NOT IN ('70','75','72')
Et là il m'indique qu'il y a aucun résultat

Comment faire ?

J'espère que j'ai bien pu me faire comprendre...

Merci

2 réponses

Il te faut un OR entre les 2 filtres de département et pas un AND:
SELECT * FROM table WHERE 1 AND (( FLOOR(dep/1000)='70') OR FLOOR(dep/1000) NOT IN ('70','75','72'))
0
BeFLuo Messages postés 10 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 21 mai 2008 1
7 mai 2008 à 11:36
OK merci Forest, c'était tout con.

Bonne journée.
0