SQL : Exclusion de données
Résolu
IMBERNONC
Messages postés
9
Statut
Membre
-
imbernonc -
imbernonc -
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
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
A voir également:
- Sql exclusion
- Logiciel sql - Télécharger - Bases de données
- Requête sql pix - Forum Python
- Blob sql ✓ - Forum Webmastering
- Inkscape découpe par exclusion ✓ - Forum Logiciels
- Jointure sql ✓ - Forum MySQL
5 réponses
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.
Merci pour votre aide et surtout merci à Paglop !!
Imbernonc.