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 :

la liste des clients qui n'ont pas acheter aucun article ...


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2002
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 36
    Points : 37
    Points
    37
    Par défaut la liste des clients qui n'ont pas acheter aucun article ...
    Problème :

    J'ai une table client qui contient 3605 lignes, Ensemble de client de l'année
    passer.


    je veux obtenir la liste des clients qui n'ont pas acheter aucun article cette année.

    NB : en basant sur 2 tables FACTURE et CLIENT

    a+
    1 = 3 ?

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3 338
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 338
    Points : 4 657
    Points
    4 657
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT * FROM CLIENT 
    LEFT JOIN FACTURE ON CLIENT.CLIENT_ID=FACTURE.CLIENT_ID 
    WHERE FACTURE_ID is null;

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2002
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 36
    Points : 37
    Points
    37
    Par défaut
    Explique moi cette requêtte , SVP :

    J'ai compris que Facture et le maître de clients, par contre je pense le contraire.

    Donc, si la table facture ne contient pas de clients, ces dernier seront supprimer !

    a+
    1 = 3 ?

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3 338
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 338
    Points : 4 657
    Points
    4 657
    Par défaut
    c'est le contraire c'est client qui est maitre.

    je selectionne TOUS les enregistrements de CLIENT dont le CLIENT_ID n'existe pas dans FACTURE.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Août 2002
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 36
    Points : 37
    Points
    37
    Par défaut
    La suite est de supprimer la liste des clients de la table clients :

    Suppression fondée sur les données d'une seconde table ou view

    J'ai utilisé cette reqûete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DELETE  * FROM CLIENT 
    WHERE EXISTS 
    (
    LEFT JOIN FACTURE ON CLIENT.CLIENT_ID=FACTURE.CLIENT_ID 
    WHERE FACTURE_ID is null
    );
    Mais Le résultats le vidage de la Table

    a+
    1 = 3 ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Points : 502
    Points
    502
    Par défaut
    Sur SQL Server:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DELETE CLIENT 
    WHERE CLIENT_ID NOT IN 
    ( 
    SELECT DISTINCT CLIENT_ID
    FROM FACTURE WITH (READUNCOMMITTED)
    )

  7. #7
    Nouveau membre du Club
    Inscrit en
    Août 2002
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 36
    Points : 37
    Points
    37
    Par défaut
    Merci, ça marche sur SQL Server

    j'ai importer la base de dbase III
    vers SQL server 2000 puis j'ai appliquer la requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DELETE CLIENT 
    WHERE CLIENT_ID NOT IN 
    ( 
    SELECT DISTINCT CLIENT_ID 
    FROM FACTURE WITH (READUNCOMMITTED) 
    )
    Tous va bien.

    J'ai trouvé qu'il y a 7514 sur 11017 client qui n'ont rien acheter en l'an 2003. Maintenant j'ai 3503 client.

    a+
    1 = 3 ?

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 27/08/2008, 12h53
  2. Réponses: 3
    Dernier message: 21/11/2006, 19h26
  3. Réponses: 6
    Dernier message: 19/06/2006, 11h48
  4. Réponses: 4
    Dernier message: 08/06/2006, 14h18

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