Aide sur une requête SQL

CrazyCow007 Messages postés 55 Statut Membre -  
CrazyCow007 Messages postés 55 Statut Membre -
Bonjour,

J'aurais besoin de votre aide, parce que je bloque sur une requête SQL (sous Access) depuis plus d'une heure, alors que je me dis que ce ne doit pas être si difficile que ça.

La structure (simplifiée) de ma base de données :
STATISTIQUE(NumStat, LibStat)
PERSONNE(NumPers, NomPers, PrenomPers)
VALEUR(NumStat#, NumPers#, Valeur)

Cette requête doit me permettre de rechercher toutes les valeurs manquantes pour réaliser mes statistiques.
Ma requête doit lister toutes les statistiques combinées aux personnes, dont aucun enregistrement n'est présent dans la table Valeur.

N'hésitez pas à me demander si ce n'est pas très clair.

Merci par avance !

4 réponses

blux Messages postés 27910 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Saalut,

ACCESS propose dans les assistants, une requête de type 'non-correspondance', ce qui semblerait être ce que tu souhaites.
0
CrazyCow007 Messages postés 55 Statut Membre
 
Je viens d'essayer, mais cet assistant ne permet que de lister des enregistrements qui font intervenir deux tables (ou requêtes). Le problème c'est que je ne peux limiter ma requête qu'à un des deux identifiants (NumPers ou NumStat). Dans mon cas, il y a deux conditions nécessaires pour afficher l'enregistrement :

NumStat et NumPers combinés ne doivent pas être présent dans la table Valeur.

En fait ça serait presque une requête qui ressemblerait à ça :
SELECT NumPers, NumStat, etc.
FROM Personne P, Statistique S
WHERE P.NumPers, S.NumStat NOT IN 
 (SELECT NumPers, NumStat
  FROM Valeur)
0
CrazyCow007 Messages postés 55 Statut Membre
 
S'il y a une solution simple en utilisant plusieurs requêtes ça ne me dérange pas (j'utilise cette requête sous VB 2005 pour compléter toutes les informations manquantes avant de générer des stats sur les personnes sous Excel).
0
blux Messages postés 27910 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Tu pourrais créer une requête de non-correspondance avec 1 champ dans les 2 tables, puis ensuite créer une autre requête de non-correspondance avec le deuxième champ entre la table et la première requête créé à l'étape précédente...
0
CrazyCow007 Messages postés 55 Statut Membre
 
Bien pensé, mais en faisant ça j'élimine au 1er passage (si sur la première requête je prend NumPers comme champs correspondant) toutes les personnes pour qui au moins une valeur leur a été attribué à une statistique (au moins 1 enregistrement présent dans la table Valeur), mais ça ne sous-entend pas que toutes les valeurs nécessaires ont été remplies pour cette personne.

(en tout cas merci pour ton aide ;) )
0