SQL : Exclusion de données

Résolu/Fermé
IMBERNONC Messages postés 9 Date d'inscription jeudi 24 avril 2008 Statut Membre Dernière intervention 25 avril 2008 - 24 avril 2008 à 15:14
 imbernonc - 5 mai 2008 à 08:37
Bonjour à tous,

Je suis Responsable du système d'information dans une PME et je dois extraire des données de notre base SQL pour effectuer une analyse. Voici le tableau.

2 tables dans ma base m'intéressent :
la table "client" et la table "reaction". La table client contient les informations du client (adresse, tel, etc...). La table "réaction" contient son activité (commandes, paiements...).

Dans la table "reaction", 2 champs m'intéressent :
le champ "client" qui contient le N° du client
le champ "code" qui contient un code correspondant à une réaction (C=commande, B=paiement...)

Voici un exemple de contenu de cette table :

Client DateReaction Code

16 2007-04-04 00:00:00.000 A
16 2008-03-31 00:00:00.000 C
16 2008-03-31 00:00:00.000 D
25 2007-10-31 00:00:00.000 D
25 2008-01-28 00:00:00.000 A
86 2003-10-08 00:00:00.000 A


Ce que je souhaite c'est ne selectionner que les clients qui ont soit un D, soit un A (ou un D et un A) mais rien d'autre. si un client a un "D, un "A" et autre chose je ne le veux pas !

Si on prend notre exemple ci dessus, la requete devrait me retourner ceci :

25
86

le client 16 ayant un code C, il n'est pas selectionné.


Une fois ce résultat obtenu il faudrait que je puisse le comparer à la table "client" et que je récupère les infos (nom, adresse, numéro de tel...) de tous les clients sélectionnés auparavant. On retrouve le champ "client" contenant le N° du client dans la tables "client".


Voilà donc ma problematique. Je pense qu'il faut procéder par étape et déjà trouver la solution pour la selection de mes clients...

Merci d'avance à tous....

Imbernonc

5 réponses

paglop !!! Messages postés 633 Date d'inscription jeudi 24 avril 2008 Statut Membre Dernière intervention 3 novembre 2015 234
25 avril 2008 à 13:37
SELECT client.champ1, client.champ2 , ... from client , reaction 
WHERE client.code=(Select distinct client from reaction WHERE client not in (Select distinct client from reaction WHERE [reaction].Code ='b' or [reaction].Code='c' or [reaction].Code='G' or [reaction].Code='E' or [reaction].Code='K' or [reaction].Code='F' or [reaction].Code='N' or [reaction].Code='R')

Je me souvenait plus du not in pourtant je l'ai deja vu.
4
Tout fonctionne comme je le souhaite, c'est bon.

Merci pour votre aide et surtout merci à Paglop !!

Imbernonc.
0