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

Requêtes et SQL. Discussion :

Requête de non correspondance ne fonctionne pas [Toutes versions]


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Responsable qualité
    Inscrit en
    Novembre 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2015
    Messages : 29
    Points : 9
    Points
    9
    Par défaut Requête de non correspondance ne fonctionne pas
    Bonjour,

    Je n'arrive pas à faire une requête de non correspondance en suivant les indications que j'ai trouvé. Pourriez vous m'aider? Voici la situation :
    A partir de la table T_Mouvement (cette table enregistre tous les mouvements de stocks) j'ai créé deux requêtes :
    La requête R_Liste quarantaine Réception : Elle isole les enregistrements de réception matières premières saisies et qui ont été mis en quarantaine (attente de contrôle)
    Les champs sont : N°Auto, DateMouvement, TypeMouvement, Référence1, N°Lot1, DLU1, Qté1, DeStock, CodeTiers, VersStock
    Exemple réception : 74, 19/5/2016, Réception MP, BARQx16 , 16051901, 2020/05, 2500, Fournisseur, B02, En quarantaine

    La requête R_ListeLibérationMP : Elle isole les enregistrements pour lesquelles les matières premières ont été libérés (= controlé et conforme)
    Les champs sont : N°Auto, DateMouvement, TypeMouvement, Référence1, N°Lot1, DLU1, Qté1, DeStock, CodeTiers, VersStock
    exemple libération : 79, 20/5/2016, Libération, BARQ x 16, 16051901, 2020/05, 2500, En quarantaine, B02, Stock MP


    Je souhaiterai isoler les réceptions pour lesquelles l'étape de libération n'a pas été réalisée, elle n'apparait donc pas dans la requête R_ListeLibérationMP .
    J'ai essayé une requête de non correspondance entre les deux requêtes précédentes avec le champ commun le N°lot1 mais ça ne fonctionne pas rien de sort, alors que j'ai plusieurs enregistrements dans les requetes et il devrait y avoir un résultat.
    Est ce que vous pouvez m'aider sur la méthode?
    Merci beaucoup pour votre aide,
    Bonne journée,

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 841
    Points : 7 975
    Points
    7 975
    Par défaut
    Bonsoir,

    Qu'est-ce que tu entends par "Non correspondance" ?
    Le sens de ce mot dans les requêtes Access est que la valeur d'un champ dans la table de départ n'est pas trouvée dans l'autre table.
    Ce qui veut dire dans ton cas de non-correspondance que tu cherches les valeurs du champ N°Lot1 qui sont présents dans la requête R_Liste quarantaine Réception et non dans la requête R_ListeLibérationMP ?

    A priori ce n'est pas ce que tu cherches ? Peux-tu re-expliquer ce que tu cherches comme résultat en donnant des exemples plus fournis (là, tu ne donnes qu'un enregistement de chaque en plus avec la même valeur pour le champ) sur les requêtes de départ et ce que tu veux obtenir.

    Cordialement.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Responsable qualité
    Inscrit en
    Novembre 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2015
    Messages : 29
    Points : 9
    Points
    9
    Par défaut c'est bien ça
    Bonjour,

    Non c'est bien ça. Je cherche les valeurs du champ N°Lot1 (idéalement le couple Référence1 et N°Lot1) qui sont présents dans la requête R_Liste quarantaine Réception et non dans la requête R_ListeLibérationMP ?

    Vu que
    R_Liste quarantaine Réception = liste des enregistrements de réception matières premières saisies et qui ont été mises en quarantaine (attente de contrôle) et
    R_ListeLibérationMP = liste des enregistrements pour lesquelles les matières premières ont été libérées (= contrôlé et conforme)
    Je cherche les enregistrements qui n'ont pas encore été contrôlés

    Mais peut être n'est ce pas la bonne méthode??
    Merci pour votre aide,
    Bonne journée,

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 841
    Points : 7 975
    Points
    7 975
    Par défaut
    Bonjour,

    Pour cela :
    Je cherche les valeurs du champ N°Lot1 (idéalement le couple Référence1 et N°Lot1)
    pas de problème, il suffirait de mettre dans la requête ces champs.
    Par contre, pour cela :
    R_Liste quarantaine Réception = liste des enregistrements de réception matières premières saisies et qui ont été mises en quarantaine (attente de contrôle) et
    R_ListeLibérationMP = liste des enregistrements pour lesquelles les matières premières ont été libérées (= contrôlé et conforme)
    Je cherche les enregistrements qui n'ont pas encore été contrôlés
    Quel(s) champ(s) ferait la différence ? Dans quel champ on compare ces valeurs dans tes 2 requêtes, vu que dans l'exemple que tu as donné :
    La requête R_Liste quarantaine Réception : Elle isole les enregistrements de réception matières premières saisies et qui ont été mis en quarantaine (attente de contrôle)
    Les champs sont : N°Auto, DateMouvement, TypeMouvement, Référence1, N°Lot1, DLU1, Qté1, DeStock, CodeTiers, VersStock
    Exemple réception : 74, 19/5/2016, Réception MP, BARQx16 , 16051901, 2020/05, 2500, Fournisseur, B02, En quarantaine

    La requête R_ListeLibérationMP : Elle isole les enregistrements pour lesquelles les matières premières ont été libérés (= controlé et conforme)
    Les champs sont : N°Auto, DateMouvement, TypeMouvement, Référence1, N°Lot1, DLU1, Qté1, DeStock, CodeTiers, VersStock
    exemple libération : 79, 20/5/2016, Libération, BARQ x 16, 16051901, 2020/05, 2500, En quarantaine, B02, Stock MP
    Tes 2 champs sont présents et ont tous les mêmes valeurs.

    Cordialement.

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Responsable qualité
    Inscrit en
    Novembre 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2015
    Messages : 29
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    Je n'ai donné qu'un exemple c'est pour cela. Mais voici plus d'exemple ci joint
    les champs référence1, lot1 et donc DLu1 et qté1et Code tiers seront identiques dans les 2 requetes , ces enregsitrements nedoivent pas donc pas apparaitre dans la requete de non correspondance. Les champs différents sont N°, dateMouvement,type mouvement, De stock, Vers stock

    requete non correspondance.docx

    Merci pour ton aide,
    Bonne soirée,
    Cordialement,

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 841
    Points : 7 975
    Points
    7 975
    Par défaut
    Bonsoir,

    Donc tu veux retrouver les enregistrements de ta requête R_Liste quarantaine Réception dont les CINQ champs (référence1, lot1 et donc DLu1 et qté1 et Code tiers) n'apparaissent pas ENSEMBLE dans la requête R_ListeLibérationMP.

    Il faut :
    1- Relier les 2 requêtes par ces 5 champs et faire une liaison à Gauche : Afficher tous les champs de la requête R_Liste quarantaine Réception indépendamment de la présence ou non de leur valeur dans l'autre requête. Dans la grille QBE de création des requêtes, après avoir "double-cliquer" sur la ligne qui relie les 2 champs, tu as une boîte de dialogue qui permet de définir ce type de relation (il faut bien lire là !). En SQL, ce type de relation est définie par LEFT JOIN.
    Et tu fais cela pour tes 5 liaisons.

    2- Rajouter ces 5 champs de la table R_ListeLibérationMP dans la grille d'interrogation et n'afficher que les valeurs Null (C'est ce qu'on veut non?)

    Et tu as ta requête avec le code :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT R_Liste_Quarantaine_Reception.N°Auto, R_Liste_Quarantaine_Reception.DateMouvement, R_Liste_Quarantaine_Reception.typeMouvement, R_Liste_Quarantaine_Reception.Reference1, R_Liste_Quarantaine_Reception.Qte1, R_Liste_Quarantaine_Reception.N°Lot1, R_Liste_Quarantaine_Reception.DLU1, R_Liste_Quarantaine_Reception.Destock, R_Liste_Quarantaine_Reception.Code_tiers, R_Liste_Quarantaine_Reception.VersStock, R_ListeLiberationMP.N°Lot1, R_ListeLiberationMP.Code_tiers, R_ListeLiberationMP.DLU1, R_ListeLiberationMP.Qte1
    FROM R_Liste_Quarantaine_Reception LEFT JOIN R_ListeLiberationMP ON (R_Liste_Quarantaine_Reception.DLU1 = R_ListeLiberationMP.DLU1) AND (R_Liste_Quarantaine_Reception.Code_tiers = R_ListeLiberationMP.Code_tiers) AND (R_Liste_Quarantaine_Reception.N°Lot1 = R_ListeLiberationMP.N°Lot1) AND (R_Liste_Quarantaine_Reception.Reference1 = R_ListeLiberationMP.Reference1) AND (R_Liste_Quarantaine_Reception.Qte1 = R_ListeLiberationMP.Qte1)
    WHERE (((R_ListeLiberationMP.N°Lot1) Is Null) AND ((R_ListeLiberationMP.Code_tiers) Is Null) AND ((R_ListeLiberationMP.DLU1) Is Null) AND ((R_ListeLiberationMP.Qte1) Is Null) AND ((R_ListeLiberationMP.Reference1) Is Null));

    En pièce jointe, une très petite base en exemple.

    Cordialement et bonne continuation,

    PS : Je me dis, est-ce une bonne idée d'enregistrer de cette manière CE type de mouvement au lieu de "rajouter" un champ dans la table qui indiquerait l'état du lot (en quarantaine, libéré et autres,...).
    Fichiers attachés Fichiers attachés

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Responsable qualité
    Inscrit en
    Novembre 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2015
    Messages : 29
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    Désolé de ne pas avoir répondu plus tôt.
    Merci pour ces précisions.

    Citation Envoyé par madefemere Voir le message

    PS : Je me dis, est-ce une bonne idée d'enregistrer de cette manière CE type de mouvement au lieu de "rajouter" un champ dans la table qui indiquerait l'état du lot (en quarantaine, libéré et autres,...).
    Effectivement j'ai essayé avec un champ de plus et ça marche bien. Très bonne idée et surtout plus simple. Je l'ai mis en Mémo de façon à pouvoir garder l’historique des changements (traçabilité oblige)
    Merci pour ton aide.
    Bonne journée,

  8. #8
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 841
    Points : 7 975
    Points
    7 975
    Par défaut
    Bonsoir,

    Je suis content que tu aies résolu ton problème. Dans ce cas, n'oublie pas de mettre ton sujet en RESOLU.

    Par contre, je ne comprends pas pourquoi tu mets ton champ en Mémo ?? .
    Si une historique est nécessaire, il faudrait dans ce cas avoir une table dédiée à cela.

    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. "Opération annulée" sur requête de non-correspondance
    Par tedparker dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 23/11/2009, 17h18
  2. Requête de non correspondance.
    Par euskal75 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 29/11/2006, 16h47
  3. requête de selection qui ne fonctionne pas
    Par emmablue dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 28/07/2006, 13h55
  4. Réponses: 1
    Dernier message: 28/06/2006, 13h31
  5. Cas spécial de requête de non-correspondance
    Par Floch dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 21/06/2006, 12h19

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