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 :

requête "pas égal"


Sujet :

Access

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2005
    Messages : 16
    Points : 7
    Points
    7
    Par défaut requête "pas égal"
    Bonjour !

    une question toute simple : je fais une requête pour comparer les articles de 2 tables, par rapport au numéro de série. Je voudrais sortir ceux qui ne se retrouvent pas d'une table à l'autre.

    je dois donc taper le symbole "pas égal". COmment faire ?

    Merci bcp !

    juju

  2. #2
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 66
    Points : 83
    Points
    83
    Par défaut
    le symbole pas egal c'est le symbole différent


  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2005
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    merci !

    j'ai essayé avec Pas Comme... c'est différent?

  4. #4
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 66
    Points : 83
    Points
    83
    Par défaut
    c'est pas pareil

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2005
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    ça ne marche pas : si je mets =, il me sort tous ceux qui sont présents dans les 2 tables, si je mets <>, il ne me sort rien.

    Ensuite je voudrais supprimer dans une table les articles qui ne sont pas trouvés dans l'autre.

    Merci encore de votre aide !


    juju

  6. #6
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    le plus simple est de faire une requête itérative (je crois que c'est de cette façon qu'on le dit)

    pour la Table1 faire une requête sélection du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT NoArticle From Table1;
    puis de l'introduire dans la requête pour la table 2 dans les conditions de l'article avec un NOT IN
    ce qui va donner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT NoArticle From Table2 WHERE NOT IN (SELECT NoArticle From Table1;);
    cette requête fournit tous les articles de la table 2 qui ne sont pas dans la table 1
    A+

  7. #7
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 66
    Points : 83
    Points
    83
    Par défaut
    je reprend ta question avec mes termes pour voir si j'ai bien compris ta demande ...

    tu veux sortir grâce à une requête tout les enregistrements de la table1 qui ne se trouvent pas dans la table2 ?

    est-ce que l'assistant requête de non correspondance ne répond pas à tes besoins ?
    essaie le pour voir ca te simplifiera peut-être la vie ...

    ps: bouton creer une nouvelle requête et choisir Requête de non correspondance

  8. #8
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    le plus simple est de faire une requête itérative (je crois que c'est de cette façon qu'on le dit)
    Je sais pas si c'est comme ça qu'on dit mais en tout cas, c'est comme ça qu'on fait

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2005
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    ok c'est nickel ! en sql, c'est traduit comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT ART.Artikelnummer
    FROM ART LEFT JOIN BELEGP ON ART.Artikelnummer = BELEGP.Artikelnummer
    WHERE (((BELEGP.Artikelnummer) Is Null));
    si je veux maintenant supprimer tous les articles non utilisés, je rajoute quoi ? (désolé mais je suis nul en sql...)

    Merci aux êtres fort !

  10. #10
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    Tu intègres ta requête dans une requête suppression

    c'est à dire que tu recopie ce code dans la condition du générateur de requête en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    in (ton sélect précédent recopié)
    et tu peux supprimer tes articles

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2005
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    ok j'ai créé une requête basée sur une table, articles, je fais ma requête suppression avec comme critère

    [/img]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    in (
    SELECT ART.Artikelnummer
    FROM ART
    WHERE (((ART.Artikelnummer) In (SELECT ART.Artikelnummer, BELEGP.Artikelnummer FROM ART LEFT JOIN BELEGP ON ART.Artikelnummer = BELEGP.Artikelnummer WHERE (((BELEGP.Artikelnummer) Is Null));)));
    et ça me met un message :

    Vous avez écrit une sous-requete 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 seul champ.

    ça vous parle?

  12. #12
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Pourquoi deux In ?

    de plus la sous requête ne dois retourner qu'un champ pour etre compatible avec In

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2005
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    je sais pas si ça sera plus simple, mais maintenant je lui de mettre un "1" dans un champ de la table articles pour les articles qui ne sont pas dans la table Beleg

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE ART SET ART.DNExport = "1"
    WHERE (((ART.DNExport) In (SELECT ART.Artikelnummer, BELEGP.Artikelnummer FROM ART LEFT JOIN BELEGP ON ART.Artikelnummer=BELEGP.Artikelnummer WHERE (((BELEGP.Artikelnummer) Is Null));)));
    Qu'en pensez-vous ?

  14. #14
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    le critère de requête est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    IN (SELECT ART.Artikelnummer
    FROM ART LEFT JOIN BELEGP ON ART.Artikelnummer = BELEGP.Artikelnummer
    WHERE (((BELEGP.Artikelnummer) Is Null));)
    donc ta requête finale aura l'air de:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    DELETE ART.Artikelnummer
    FROM ART
    WHERE (((ART.Artikelnummer) In (SELECT ART.Artikelnummer
    FROM ART LEFT JOIN BELEGP ON ART.Artikelnummer = BELEGP.Artikelnummer
    WHERE (((BELEGP.Artikelnummer) Is Null));
    )));
    ce qui est important c'est que la sous requête ne renvoie qu'un seul champ.
    A+

Discussions similaires

  1. [Requête/SQL]Pb de "quote" avec un type memo
    Par Tintou dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 26/04/2007, 15h47

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