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 :

Exclure des enregistrements


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Exclure des enregistrements
    J'ai une table contenant tous mes emplacements de stockage. Je l'appel t_Empl

    J'ai une autre table où j'attribue à un article un emplacement de stockage. Je l'appel t_Stock

    La relation entre les deux tables se fait sur le champ EmplStock.
    t_Empl.EmplStock 1-------->X t_Stock.EmplStock

    Je désire faire une requête qui me listerait tous mes emplacements de stockage actullement libres donc
    requête = t_Empl.EmplStock - t_Stock.EmplStock

    Mais comme je débute, je cale.
    Merci d'avance

  2. #2
    Membre régulier Avatar de reno_tidus
    Profil pro
    Inscrit en
    Août 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 132
    Points : 122
    Points
    122
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Select EmplStock
    FROM t_Empl
    WHERE EmplStock NOT IN (SELECT EmplStock FROM t_Stock)

  3. #3
    Membre averti Avatar de AL1986
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 434
    Points : 441
    Points
    441
    Par défaut
    ou encore
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT EmplStock
    FROM t_Empl
    EXCEPT
    SELECT EmplStock 
    FROM t_Stock
    A condition que ton SGBD accepte le mot réservé EXCEPT

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci pour vos réponses.

    J'avais essayé l'EXCEPT mais ACCESS 2007 ne comprend pas la requête.
    Malheureusement celle de reno_tidus ne fonctionne pas non plus. Le 1er SELECT me liste bien mes 3000 emplacements mais en ajoutant la condition WHERE NOT IN j'ai en retour une vue vierge.

    Je crois que je vais ajouter un champ de contrôle dans la table t_Empl et faire le ckeck dessus.

  5. #5
    Membre averti Avatar de AL1986
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 434
    Points : 441
    Points
    441
    Par défaut
    Citation Envoyé par eb_satch Voir le message
    Malheureusement celle de reno_tidus ne fonctionne pas non plus. Le 1er SELECT me liste bien mes 3000 emplacements mais en ajoutant la condition WHERE NOT IN j'ai en retour une vue vierge.
    C'est plutôt bizarre. Si t'as une table vierge, c'est comme si tous les EmplStock de t_Empl étaient présents dans t_Stock. Essaie ça pour voir :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT TE.EmplStock
    FROM t_Empl TE, t_Stock TS
    WHERE TE.EmplStock <> TS.EmplStock;

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Résultat étonnant mais interressant.

    La vue duplique les EmplStock X12 quand l'emplacement est libre et X11 quand il est occupé. Pour être clair voici une partie du résultat sachant que AA11 est utilisé dans t_Stock alors que AA12 ne l'est pas.

    EmplStock
    AA11
    AA11
    AA11
    AA11
    AA11
    AA11
    AA11
    AA11
    AA11
    AA11
    AA11
    AA12
    AA12
    AA12
    AA12
    AA12
    AA12
    AA12
    AA12
    AA12
    AA12
    AA12
    AA12

    AA11 présent 11 fois, AA12 présent 12 fois. Donc il soustrait bien les enregistrements utilisés dans la table t_Stock, mais par contre la multiplication des pains no idea why ^^

  7. #7
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Salut,

    En créant la requête avec l'assistant il est facile de trouver la syntaxe...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCTROW EmplStock
    FROM t_Empl LEFT JOIN t_Stock ON t_Empl.EmplStock= t_Stock.EmplStock
    WHERE (((t_Stock.EmplStock) Is Null));

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci ca marche parfaitement !!

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

Discussions similaires

  1. Exclure des enregistrements vide dans une requête sql
    Par beegees dans le forum Langage SQL
    Réponses: 1
    Dernier message: 31/03/2009, 20h42
  2. [MySQL] Exclure des enregistrements dans mysql_query
    Par eRaVeN dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/01/2008, 13h16
  3. Réponses: 7
    Dernier message: 22/08/2007, 12h49
  4. Exclure des enregistrements dans une requête
    Par r@phy dans le forum Access
    Réponses: 3
    Dernier message: 29/03/2006, 12h18
  5. Exclure des enregistrements d'une requête
    Par beegees dans le forum Access
    Réponses: 2
    Dernier message: 20/06/2005, 14h01

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