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

Langage SQL Discussion :

Non correspondance de données


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 49
    Points : 20
    Points
    20
    Par défaut Non correspondance de données
    Slt à tous meilleurs voeux 2009 :-).

    En ce début d'année je souhaite faire une requête qui me permette de sortir une liste de personnes qui ne se trouve ni à la fois dans la 1ère ni dans la 2ème table.
    Est il possible et de quelle façons svp merci.

  2. #2
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Dans la simplicité je dirais avec une sous requête et l'utilisation du prédicat "NOT EXISTS" !

    Sans le SGBD, ni la description des tables ça va être plus dur de t'aider !
    cf les règles !

    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 49
    Points : 20
    Points
    20
    Par défaut
    Merci.
    en fait je veux savoir si une personnes n'a pas acheté des pommes par exemple depuis 2 ans.
    table des personnes avec id
    et tables des achats avec date des achats.

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par xehyan Voir le message
    Merci.
    en fait je veux savoir si une personnes n'a pas acheté des pommes par exemple depuis 2 ans.
    table des personnes avec id
    et tables des achats avec date des achats.
    Décomposons le problème...
    Déjà on va supposer que la base est correctement modéliser et qu'il y a en plus une table des produits.

    1) Il y a des personnes qui n'ont jamais acheté de pommes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT p.P_Id, p.P_Nom
    FROM personnes p
    INNER JOIN achats a ON p.P_Id = a.A_IdPersonne
      INNER JOIN produits pr ON a.A_IdProduit = pr.PR_id
    WHERE pr.PR_NomProduit = 'pommes'
    GROUP BY p.P_Id, p.P_Nom
    HAVING COUNT(*) = 0
    2) Il y a des personnes qui ont acheté des pommes dont il faut connaître la date du dernier achat de pommes et vérifier si celle-ci est inférieure à aujourd'hui - 2 ans.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT p.P_Id, p.P_Nom
    FROM personnes p
    INNER JOIN achats a ON p.P_Id = a.A_IdPersonne
       INNER JOIN produits pr ON a.A_IdProduit = pr.PR_id
    WHERE pr.PR_NomProduit = 'pommes'
    GROUP BY p.P_Id, p.P_Nom
    HAVING DATEDIFF(CURRENT_DATE, MAX(a.A_DateAchat)) > 730
    On est peut-être pas à un jour près s'il y a une année bissextile dans les deux ans ?

    3) Il n'y a plus qu'à réunir les deux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT p.P_Id, p.P_Nom
    FROM personnes p
    INNER JOIN achats a ON p.P_Id = a.A_IdPersonne
       INNER JOIN produits pr ON a.A_IdProduit = pr.PR_id
    WHERE pr.PR_NomProduit = 'pommes'
    GROUP BY p.P_Id, p.P_Nom
    HAVING COUNT(*) = 0 OR
      DATEDIFF(CURRENT_DATE, MAX(a.A_DateAchat)) > 730
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 49
    Points : 20
    Points
    20
    Par défaut
    Merci pour vos réponses je vais tester et si besoin reviendrai vers vous :-)

Discussions similaires

  1. Création d'une requête de non correspondance
    Par angélique dans le forum Access
    Réponses: 2
    Dernier message: 18/07/2006, 16h50
  2. Réponses: 1
    Dernier message: 28/06/2006, 13h31
  3. 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
  4. Requete de non-correspondance
    Par nassu dans le forum Access
    Réponses: 2
    Dernier message: 10/05/2006, 19h28
  5. Extraction de doublons et non correspondance
    Par banker dans le forum Access
    Réponses: 2
    Dernier message: 31/01/2006, 08h52

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