IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Différence de requêtes avec critères


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 39
    Points : 24
    Points
    24
    Par défaut Différence de requêtes avec critères
    Bonjour,
    j'ai un cas un peu épineux à résoudre, je vais essayer d'expliquer le cas.

    J'ai une table personnel avec toutes les personnes d'une entreprise qui ont chacun une fonction et des horaires de travail.
    J'ai une table type de formation où différentes formations sont rentrées.
    J'ai une table formation ou sont rentrés les formations qui ont été organisés (type de formation, date).
    J'ai une table détails formations où pour chaque formation j'ai les personnes qui y ont participé.
    Et enfin une table de correspondance entre la formation et la fonction qui indique qui doit suivre telle formation.

    Je souhaite faire une requête pour trouver qui reste à former sur une formation pour des personnes avec les mêmes horaires et qui peut bien suivre cette formation.
    Si je créé temporairement deux tables avec le total et ceux qui ont été formé, les tables sont énormes (1000 personnes pour 80 formations) et ça plante à tous les coups.

    Quelqu'un aurait il une idée ça m'aide bien?

    merci

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Avec des requêtes tu devrait pouvoir t'en sortir

    Pour les personnes autoriser à subir une formation données,
    Fait une requête Req1 sur les tables correspondance - formation - fonction et Personnel

    Ensuite en utilisant cette requête dans une nouvelle requête ou tu ajoute la table Détail Formation et Left Join tu aura en même temps et les personnes ayant suivie une formation données et celles à former.

    J'espères que ça t'aidera.
    Amicalement

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 39
    Points : 24
    Points
    24
    Par défaut
    Merci DMboup,
    j'ai essayé de faire ce que tu m'as dit mais le problème c'est qu'avec la jointure il m'exclut de ma deuxième requête tous ceux apparaissant dans la table details formation, donc tous ceux qui ont eu une formation et non pas seulement ceux qui ont eu la formation pour laquelle on fait la recherche...

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Ca doit être le sens de la jointure

    Req1 LEFT JOIN DetailFormation et différente de Req1 RIGHT JOIN DetailFormation.

    Si tu montres ce que tu as ça ira mieux.
    Amicalement

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 39
    Points : 24
    Points
    24
    Par défaut
    J'ai essayé les deux, a marche po

    voila ma requête 1:
    SELECT Agents.Identifiant, Agents.Nom, Agents.Prénom, TypeFormation.TypeFormation, Agents.Grade
    FROM (TypeFormation INNER JOIN Formation ON TypeFormation.NumTypeFormation = Formation.NumTypeFormation) INNER JOIN (Agents INNER JOIN FormationGrade ON Agents.Grade = FormationGrade.Grade) ON TypeFormation.NumTypeFormation = FormationGrade.ID_Formation
    WHERE (((TypeFormation.TypeFormation)=[entre type formation]));

    et ma requête 2

    SELECT DISTINCT Requête1.Identifiant, Requête1.Nom, Requête1.Prénom
    FROM Requête1 RIGHT JOIN DetailsFormation ON Requête1.Identifiant = DetailsFormation.AgentFormé;

    Et dans ce cas là j'ai tous les agents même ceux qui ont été formé

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Citation Envoyé par Nicola
    et ma requête 2

    SELECT DISTINCT Requête1.Identifiant, Requête1.Nom, Requête1.Prénom
    FROM Requête1 RIGHT JOIN DetailsFormation ON Requête1.Identifiant = DetailsFormation.AgentFormé;

    Et dans ce cas là j'ai tous les agents même ceux qui ont été formé
    Eh bien pour la requête 2 si tu ajoute

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT DISTINCT Requête1.Identifiant, Requête1.Nom, Requête1.Prénom, DetailsFormation.DateFormation
    FROM Requête1 RIGHT JOIN DetailsFormation ON Requête1.Identifiant = DetailsFormation.AgentFormé;
    tu aura en principe une la liste dont certaines ligne ont le champ DateFormation renseignée (ce sont les personnes ayant suivi la formation) et des lignes dont le champ DateFormation est vide( ce sont les personnes n'ayant pas suivi la formation).
    Amicalement

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 39
    Points : 24
    Points
    24
    Par défaut
    Merci

    Mais quand je rajoute ce champ (date formation), les dates qui apparaissent dans la requête 1 sont farfelues. En gros comme il n'y a pas la table details formation dans la requête, il ne peut pas voir si tel agent a participé à telle ou telle formation.
    Du coup je ne comprends pas vraiment comment il met les dates, mais il se trouve qu'il les remplit tous alors que certains n'ont pas suivi la formation.

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Citation Envoyé par Nicola
    Merci

    Mais quand je rajoute ce champ (date formation), les dates qui apparaissent dans la requête 1 sont farfelues. En gros comme il n'y a pas la table details formation dans la requête, il ne peut pas voir si tel agent a participé à telle ou telle formation.
    Du coup je ne comprends pas vraiment comment il met les dates, mais il se trouve qu'il les remplit tous alors que certains n'ont pas suivi la formation.
    Vu que je n'ai pas ton modél avec moi, je ne fais que te proposer une solution. A toi d'utiliser les tables réelles que tu as pour avoir le résultat attendu.

    Si c'est pas la table DetailFormation tu la remplace par la table où tu enregistre les formations réelles suivi par les agents et tu utilises aussi les vrai champs de tes tables.
    Amicalement

Discussions similaires

  1. Requête avec critère dans un champ
    Par PAPINDOL dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 09/09/2007, 15h49
  2. Requête avec critère entre deux valeurs
    Par adrien.gendre dans le forum VBA Access
    Réponses: 3
    Dernier message: 01/08/2007, 12h21
  3. Requête avec critère dans Etats
    Par adrien.gendre dans le forum VBA Access
    Réponses: 0
    Dernier message: 25/07/2007, 12h25
  4. Réponses: 1
    Dernier message: 24/07/2007, 12h10
  5. Pb requête avec critères dans projet Access
    Par laville dans le forum Access
    Réponses: 4
    Dernier message: 19/04/2006, 20h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo