Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

requête avec Not Exist Access 2003

1 réponse
Avatar
lapaloma
Je tente d'utiliser une sous-requête sans succès avec l'option not exists.
Access ne reconnaît que le mot Exists. J'ai tenté ma requête en utilisant Pas
In mais sans succès.

Voici les tables sur lesquelles je veux faire ma requête:
Table A Concours_Bourses (Sélection de tous les concours où l'année = 2006)
Table B Gestionnaire_Intervention_Concours (table intermédiaire entre
Gesionnaire et Concours_Bourse) (sert à déterminer les intervention effectués
par des gestionnaires sur les concours)

Voici ce que je veux faire:

Je veux obtenir tous les concours sur lesquels il n'y a aucune intervention
d'effectuée pour un Type_Intervenant = "RESSBBAF"

Voici la requête que tente de faire fonctionner:

SELECT CONCOURS_BOURSE.SeqUnikConcoursBourse,
CONCOURS_BOURSE.ANNEE_CONCOURS, CONCOURS_BOURSE.NUMERO_CONCOURS
FROM CONCOURS_BOURSE
WHERE (((CONCOURS_BOURSE.SeqUnikConcoursBourse) Not In (SELECT DISTINCT
[GESTIONNAIRE _INTERVENTION_CONCOURS].SeqUnikConcoursBourse, [GESTIONNAIRE
_INTERVENTION_CONCOURS].SEQUENCE_BOURSE, [GESTIONNAIRE
_INTERVENTION_CONCOURS].NUMERO_VERSION, [GESTIONNAIRE
_INTERVENTION_CONCOURS].ANNEE_CONCOURS, [GESTIONNAIRE
_INTERVENTION_CONCOURS].NUMERO_CONCOURS, [GESTIONNAIRE
_INTERVENTION_CONCOURS].CODE_INTERVENANT, [GESTIONNAIRE
_INTERVENTION_CONCOURS].TYPE_INTERVENANT, [GESTIONNAIRE
_INTERVENTION_CONCOURS].NUMERO_DOSSIER, [GESTIONNAIRE
_INTERVENTION_CONCOURS].NUMERO_UNITE
FROM [GESTIONNAIRE _INTERVENTION_CONCOURS]
WHERE ((([GESTIONNAIRE
_INTERVENTION_CONCOURS].TYPE_INTERVENANT)="RESSBBAF")))) AND
((CONCOURS_BOURSE.ANNEE_CONCOURS)=2006));

Voici le message d'erreur que j'ai tout le temps:

Vous avez écrit une sous-requête pouvant renvoyer plus d'un champ sans
utiliser le mot réservé EXISTS dans la clause FROM de la requête principale.
Révisez l'instruction SELECT de la sous-requête pour obtenir un suel champ!

Est-ce que quelqu'un peut m'aider???? Help!

Nathalie

1 réponse

Avatar
Raymond [mvp]
Bonsoir.

tu ne peux indiquer qu'un seul champ dans la clause not in.
une telle requête qui fonctionne, donne en simplifiant:
SELECT table1.Numero, table1.Madate FROM table1
WHERE (table1.Numero Not In (SELECT DISTINCT table2.numero
FROM table2
WHERE table1.madate = table2.madate));

à voir et à tester
--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Nouvelle base Access des communes françaises avec
longitude, latitude et 13246 sites internet officiels
http://ardecheearth.free.fr/basededonnees.htm


"lapaloma" a écrit dans le message de
news:
| Je tente d'utiliser une sous-requête sans succès avec l'option not exists.
| Access ne reconnaît que le mot Exists. J'ai tenté ma requête en utilisant
Pas
| In mais sans succès.
|
| Voici les tables sur lesquelles je veux faire ma requête:
| Table A Concours_Bourses (Sélection de tous les concours où l'année 2006)
| Table B Gestionnaire_Intervention_Concours (table intermédiaire entre
| Gesionnaire et Concours_Bourse) (sert à déterminer les intervention
effectués
| par des gestionnaires sur les concours)
|
| Voici ce que je veux faire:
|
| Je veux obtenir tous les concours sur lesquels il n'y a aucune
intervention
| d'effectuée pour un Type_Intervenant = "RESSBBAF"
|
| Voici la requête que tente de faire fonctionner:
|
| SELECT CONCOURS_BOURSE.SeqUnikConcoursBourse,
| CONCOURS_BOURSE.ANNEE_CONCOURS, CONCOURS_BOURSE.NUMERO_CONCOURS
| FROM CONCOURS_BOURSE
| WHERE (((CONCOURS_BOURSE.SeqUnikConcoursBourse) Not In (SELECT DISTINCT
| [GESTIONNAIRE _INTERVENTION_CONCOURS].SeqUnikConcoursBourse, [GESTIONNAIRE
| _INTERVENTION_CONCOURS].SEQUENCE_BOURSE, [GESTIONNAIRE
| _INTERVENTION_CONCOURS].NUMERO_VERSION, [GESTIONNAIRE
| _INTERVENTION_CONCOURS].ANNEE_CONCOURS, [GESTIONNAIRE
| _INTERVENTION_CONCOURS].NUMERO_CONCOURS, [GESTIONNAIRE
| _INTERVENTION_CONCOURS].CODE_INTERVENANT, [GESTIONNAIRE
| _INTERVENTION_CONCOURS].TYPE_INTERVENANT, [GESTIONNAIRE
| _INTERVENTION_CONCOURS].NUMERO_DOSSIER, [GESTIONNAIRE
| _INTERVENTION_CONCOURS].NUMERO_UNITE
| FROM [GESTIONNAIRE _INTERVENTION_CONCOURS]
| WHERE ((([GESTIONNAIRE
| _INTERVENTION_CONCOURS].TYPE_INTERVENANT)="RESSBBAF")))) AND
| ((CONCOURS_BOURSE.ANNEE_CONCOURS) 06));
|
| Voici le message d'erreur que j'ai tout le temps:
|
| Vous avez écrit une sous-requête pouvant renvoyer plus d'un champ sans
| utiliser le mot réservé EXISTS dans la clause FROM de la requête
principale.
| Révisez l'instruction SELECT de la sous-requête pour obtenir un suel
champ!
|
| Est-ce que quelqu'un peut m'aider???? Help!
|
| Nathalie